重温《YAHOO 网页性能提升最佳实践》

740 阅读2分钟

最近看了一些大神的作品,更加觉得不管做任何事,都需要专注和坚持,很多时候不是自己没有能力做好,而是没在意细节,没有多问自己一个为什么。

很早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…