1、页面减肥 页面的肥瘦是影响加载速度最重要的因素 删除不必要的空格、注释 将inline的script和css移到外部文件 可以使用HTML Tidy来给HTML减肥,还可以使用一些压缩工具来给JavaScript减肥 2、减少文件数量 减少页面上引用的文件数量可以减少HTTP连接数 许多JavaScript、CSS文件可以合并最好合并,人家财帮子都把自己的JavaScript functions和Prototype.js合并到一个base.js文件里去了 3、减少域名查询 DNS查询和解析域名也是消耗时间的,所以要减少对外部JavaScript、CSS、图片等资源的引用,不同域名的使用越少越好 4、缓存重用数据 使用缓存吧 5、优化页面元素加载顺序 首先加载页面最初显示的内容和与之相关的JavaScript和CSS 然后加载DHTML相关的东西 像什么不是最初显示相关的图片、flash、视频等很肥的资源就最后加载 6、减少inline JavaScript的数量 浏览器parser会假设inline JavaScript会改变页面结构,所以使用inline JavaScript开销较大 不要使用document.write()这种输出内容的方法,使用现代W3C DOM方法来为现代浏览器处理页面内容 7、使用现代CSS和合法的标签 使用现代CSS来减少标签和图像,例如使用现代CSS+文字完全可以替代一些只有文字的图片 使用合法的标签避免浏览器解析HTML时做“error correction”等操作,还可以被HTML Tidy来给HTML减肥 8、Chunk your content 不要使用嵌套tables Java代码
..
而使用非嵌套tables或者divs Java代码
...
...
...
将基于大块嵌套的tables的layout分解成小tables,这样显示时不用加载整个页面(或大table)的内容 9、指定图像和tables的大小 如果浏览器可以立即决定图像或tables的大小,那么它就可以马上显示页面而不要重新做一些布局安排的工作 这不仅加快了页面的显示,也预防了页面完成加载后布局的一些不当的改变 image使用height和width table使用table-layout: fixed并使用col和colgroup标签指定columns的width 10、根据用户浏览器明智的选择策略 IE、Firefox、Safari等等等等 11、页面结构的例子 · HTML · HEAD · LINK ... CSS files required for page appearance. Minimize the number of files for performance while keeping unrelated CSS in separate files for maintenance. · SCRIPT ... JavaScript files for functions required during the loading of the page, but not any DHTML that can only run after page loads. Minimize the number of files for performance while keeping unrelated JavaScript in separate files for maintenance. · BODY · User visible page content in small chunks (tables / divs) that can be displayed without waiting for the full page to download. · SCRIPT ... Any scripts which will be used to perform DHTML. DHTML script typically can only run after the page has completely loaded and all necessary objects have been initialized. There is no need to load these scripts before the page content. That only slows down the initial appearance of the page load. Minimize the number of files for performance while keeping unrelated JavaScript in separate files for maintenance. If any images are used for rollover effects, you should preload them here after the page content has downloaded.