1.Make fewer HTTP requests
尽可能减少HTTP请求次数:通过合并图片、CSS、JS,减少页面上组件的数量减少了渲染页面所需的HTTP请求的数量,降低页面加载时间。
2.Use a Content Delivery Network (CDN)
使用CDN(内容分发网络):80-90%的最终用户响应时间花在下载图片,样式,脚本,Flash等网页组件上,所以最好先把静态内容分布到CDN上。当用户在读取网页内容的时候,就会去就近服务器上下载JS和CSS。提高访问速度,保证资源服务器的稳定性;并可节省流量。
3.Avoid empty src or href
避免使用空的src、href:当src、href内容为空,大部分浏览器会直接过滤掉,但IE浏览器除外;IE依然会向空路径发出请求,可能会损坏用户数据,浪费服务器计算周期生成一个永远不会被查看的页面。
4.Add Expires headers
给文件头添加过期时间:使内容具有缓存性。Expires headers 告诉浏览器应该从服务器或从浏览器的缓存获取指定文件。Expires headers 的设计目的是希望使用缓存来减少HTTP requests的数量,从而减少HTTP相应的大小。
5.Compress components with gzip
用gzip压缩内容:压缩通过减少HTTP响应的大小来减少响应时间。gzip是目前可用的最流行和最有效的压缩方法,通常将响应大小减少约70%。
6.Put CSS at top
把CSS放在顶部
7.Put JavaScript at bottom
把JS放在底部:JavaScript脚本阻止并行下载,以免对后续资源造成阻塞;
8.Avoid CSS expressions
避免使用CSS表达式:CSS表达式(在IE5.0以后开始支持)是动态设置CSS属性的一种强大且危险的方法。
当页面被渲染并调整大小时,当页面滚动时,甚至当用户在页面上移动鼠标时,根据表达式重新计算。这些频繁的计算降低了用户体验。
9.Make JavaScript and CSS external
将CSS和JS放到外部文件中:使用外部JS和CSS文件通常会产生更快的页面,因为文件是由浏览器缓存的。在HTML文档中嵌入的JavaScript和CSS在每次请求HTML文档时都会被下载。这减少了HTTP请求的数量,但增加了HTML文档的大小。另一方面,如果JavaScript和CSS在浏览器缓存的外部文件中,则HTML文档的大小会减少而不增加HTTP请求的数量。(需根据PV和IP的比例权衡)
10.Reduce DNS lookups
减少DNS查找次数:减少DNS解析时间。
11.Minify JavaScript and CSS
精简JS及CSS:删除不需要的空白字符(空格、换行符和选项卡)。
12.Avoid URL redirects
避免重定向(重定向让用户感觉网页速度很慢。)
13.Remove duplicate JavaScript and CSS
删除重复的JS及CSS:重重复的JavaScript和CSS文件,通过创建不必要的HTTP请求(仅IE)和浪费JavaScript执行(IE和Firefox)来损害性能。
-
在IE中,如果一个外部脚本被包含两次而不是可缓存的,它会在页面加载期间生成两个HTTP请求。
-
在IE和Firefox中,重复的JavaScript脚本导致浪费时间来不止一次地评估同一脚本。不管脚本是否是可缓存的,这种冗余脚本执行都会发生。
14.Configure entity tags (ETags)
配置实体标签(ETags):用来判断浏览器缓存里的元素是否和原来服务器上的一致。使用ETags减少Web应用带宽和负载。
15.Make AJAX cacheable
缓存AJAX:AJAX异步请求后台web服务器,但使用AJAX并不保证用户不会等待异步JavaScript和XML响应返回。优化AJAX响应对于提高性能非常重要,利用响应缓存来改进AJAX的性能。
16.Use GET for AJAX requests
使用GET来完成AJAX请求:当使用XHR对象时,浏览器在两个步骤中实现POST:先发送头文件,然后发送数据。最好使用GET而不是POST,因为GET将标题和数据一起发送(除非有很多Cookie)。IE里面最大的URL长度为2K,如果需要发送>2K的数据就不能用GET方式了。
17.Reduce the number of DOM elements
减少DOM元素的数量:复杂的页面意味着要下载更多的字节,也意味着JavaScript中的DOM访问速度较慢。减少页面上DOM元素的数量,以提高性能。
18.Avoid HTTP 404 (Not Found) error
避免404错误
19.Reduce cookie size
减少cookie的大小:因为很多理由需要使用cookies,例如:认证,个性化等。cookies在HTTP头信息,是服务器和浏览器之间的信息交互。为了最大程度地降低对用户响应时间的影响,需要让cookies的大小尽量最小化。
20.Use cookie-free domains
使用无cookie的域:当浏览器请求静态图像并向请求发送cookies时,服务器会忽略cookies,但这些cookies是不必要的网络流量。解决建议:可以创建一个子域名来放置静态组件,浏览器发送静态内容的请求时不会发送cookies的域名。
21.Avoid AlphaImageLoader filter
避免使用滤镜:IE特有的AlphaImageLoader滤镜是为了解决在IE7以下正彩色PNG图片的半透明的问题。用了此滤镜下载时会阻塞渲染,并且内存消耗成倍增加。
22.Do not scale images in HTML
不要在HTML中缩放图片
23.Make favicon small and cacheable
使favicon.ico尽量小且可被缓存:图片favicon.ico应该在服务器的根目录下面。
-
使小图标尽量小。
-
使favicon.ico缓存可避免频繁的请求。
网友评论