规则1:减小HTTP请求css
咱们只有20%的时间花在所请求的HTML页面上,剩下的80%是发生在浏览器前端,特别是页面和页面中各类元素(图片、CSS、Javascript、 flash…)的下载之上。前端
图片技术,CSSsprite,内联图片和脚本,样式表的合并,这些技术既能够减小HTTP请求,又能够避免在性能和设计之间进行艰难的选择。web
规则2:使用内容发布网络apache
内容发布网络(CDN)是一组分布在多个不一样地理位置的web服务器,用于更加有效的向用户发布内容。浏览器
除了缩短期以外,CDN还能够带来其余优点。他们的服务包括备份,扩展存储能力和进行缓存。CDN还有助于缓和web流量峰值压力,好比在获取天气或股市新闻,浏览流行的体育或娱乐事件时。缓存
规则3:增长Expires header服务器
如今的WEB页面都包含了大量的组件,而且其数量在不断增加,页面的初访者会进行不少的HTTP请求,但经过使用一个长久的Expires头,让这些组件被缓存,这会在后续的页面浏览中避免没必要要的HTTP请求。长久的Expires头经常使用于图片,但应该用在全部的组件上,包括脚本,样式表。网络
规则4:压缩组件性能
若是http产生的响应包很小,传输时间就会不多,由于只须要很小的包从服务器传递到客户端。压缩响应包,并由此减小网络的响应时间,这是减小页面大小的最简单的技术,但影响是最大的。设计
规则5:将样式表放在顶部
规则6:将脚本放在底部
规则7:避免CSS表达式
表达式的问题在于对其求职的频率比人们指望的要高。它们不仅在页面呈现和大小改变时求值,当页面滚动,甚至用户鼠标在页面上移动过期都要求值。
规则8:使用外部Javascript和css
规则9:减小DNS查找
当客户端的DNS缓存为空时,DNS查找的数量与web页面中惟一的主机名数量相等。也就是说,减小惟一的主机名的数量就能够减小DNS查找的数量。减小惟一的主机名数量会潜在的减小页面中并行下载的数量。避免DNS查找下降了响应时间,但减小并下载可能会增长响应时间。
规则10:精简JavaScript
精简是从代码中移除没必要要的字符以减小其大小,进而改善加载时间的实践。在代码被精简后,全部的注释以及没必要要的空白字符都将被移除,这能够改善响应时间的效率
规则11:避免重定向
除了在header中人为的重定向以外,网页重定向常在不经意间发生,被重定向的内容将不会使用浏览器的缓存。好比用户在访问www.xxx.com,服务器会经过301转向到www.xxx.com/,在后面加了一个“/”。若是服务器的配置很差,这也会给服务器带来额外的负担。经过配置apache的 alias或使用mod_rewrite模块等方法,能够避免没必要要的重定向。
规则12 :移除重复脚本
规则13:配置ETag
使用gzip来压缩网页中的静态内容,可以显著减小用户访问网页时的等待时间(听说可达到60%)。主流的web服务器都支持或提供gzip压缩,若是使用apache服务器,只须要在配置文件中开启 mod_gzip(apache1.x)或mod_deflate(apache2.x)便可。凡是静态的页面,使用gzip压缩都可以显著提升服务器效率并减小带宽支出,注意图片内容自己已是压缩格式了,务必不要再进行压缩。
规则14:使Ajax可缓存