前端优化的根本其实就是减少页面http请求、用最小的开销达到最快的响应速度;当我们持续把web的能力发挥到极致的时候,让网页在最小开销或等待时间下可用依然是同样重要的问题。下面我们就对此做了一些总结说明如何优化网页使用户满意。
1) 对图片进行无损压缩优化;以及针对项目中的css、js也要做相应的压缩处理,CSS 和 JavaScript 都必须以最小化方式加载,尽可能的减少项目的大小
2) 不要在HTML中写内联脚本 <script> 块。 它们会阻塞页面渲染操作,对页面加载时间带来破坏性的影响
3) 适当地设置缓存标题;针对静态资源,考虑单独配置一个无cookie的子域
4) CSS 必须放在文档的 <head> 部分, Javascript 必须正好放在 </body> 标签的前面
5) CSS 必须串接在一起。显然,只有具备相同媒体类型(例如屏幕或打印)的文件才能合在一起。这里的总体目标是在加载页面的时候减少因为依赖关系而产生的HTTP连接数
6) JavaScript 必须串接在一起。虽然用一个AJAX脚本依赖性管理器(类似于 YUI 3 Loader)可能会比较理想,但实施起来还是挺复杂的。 在这里我还是想推荐单次下载站点用到的所有脚本
二. 优化 JavaScript 执行,在页面加载的时候,通常会有很多脚本等待执行,但你可以设定优先级。下面的顺序就是基于用户反馈设定的优先级:
- 改变页面视觉习性的脚本绝对要首先执行。这包括任何的字体调整、盒子布局、或IE6 pngfix。
- 页面内容初始化
- 页面标题、顶部导航和页脚的初始化
- 绑定事件处理器
- 网页流量分析、Doubleclick,以及其他第三方脚本
三. 图片借助雪碧图形式显示,CSS 精灵(Sprites) 基本上就是把一批图片资源合并成单个图片文件。然后每个部分用 CSS background-position 来展现。典型的 CSS 看起来是这样的:
1 a.expandbox { 2 display:block; 3 width: 75px; 4 height: 15px; 5 text-indent: -999px; 6 overflow:hidden; 7 background: url(../img/sprite.png) no-repeat -50px -5px; 8 }