最近看了一些大神的作品,更加觉得不管做任何事,都需要专注和坚持,很多时候不是自己没有能力做好,而是没在意细节,没有多问自己一个为什么。
很早YAHOO团队就出了一份有助于网页性能提升的指导方法,还开发了一个工具YSlow供开发人员使用。
以下是YAHOO团队当年列出的几条最佳实践,从中我们可以看出,优化的过程是层层递进的,需要了解到底层的工作原理,比如HTTP协议。
我重新对分类进行了整理,从另外一个角度来看怎么做好网页的性能提升。
页面加载顺序和延迟加载
- 将CSS文件放到页面的顶部,将JS文件放到页面的底部。
- 对于可以延迟的内容部分,推迟加载他。
- 预加载。
减少HTTP请求
-
http/1.1不支持多路复用,而且一个连接只能请求一个内容,页面的js、css和图片都需要单独的一个一个的请求。所以需要尽可能多的合并文件,现在JS、CSS和图片都有相应的技术和工具能解决真个问题。(现在google推行的QUIC和SPDY技术可以提升此处性能,HTTP/2.0也是。)
-
301和302状态码可能会导致客户端的多次连接,所以需要尽量避免。
- 多使用GET。(POST发送数据有两步:第一步发送头文件,第二部才发送数据)
压缩内容和分发内容
- 开启gzip压缩可以有效的降低内容的传输量。
- 启用CDN。
- 对于不需要Cookie的静态文件使用无Cookie域名。减少Cookie大小。
- 不要在页面内直接存放图像内容(base64)。
- 优化页面图像的大小。
多利用Cache
- 减少页面使用域名的个数,可以有效降低DNS查询的次数。
- Ajax考虑是否可以做Cache
- http头的使用:Expires, Cache-Control, Etag
减少复杂计算
- 避免使用CSS表达式。
- 去除重复脚本。
- 避免使用滤镜。
详细的可以查看YAHOO的英文原文, developer.YAHOO.com/performance…