高性能网站建设法则

 关注前端可以很好的提高整体性能,可以改进前段通常只需要较少的时间和资源

性能黄金法则

只有10%–20%的最终用户时间花在了下载HTML文档上,其余的80%~90%的时间花在了下载页面中的所有组件上
(80%-90%用户的等待时间是来自于前端的页面加载)

 

1.  减少阻塞次数、减少阻塞时间
  1.将CSS放在顶部
  2.将JS放在底部
  3.删除重复的脚本

  4.延迟加载渲染页面不需要的脚本
  5.按需异步下载

注:这个规则其实并不影响性能,但是却关乎用户的体验。

  如果样式表放在顶部,那么在下列三种情况下,浏览器会出现白屏

  1、在新窗口中打开

  2、重新加载

        3、作为主页

 

2.  使Ajax可缓存

被动请求(Passive Request)

主动请求(Acitve Request)

 

3.  减少HTTP请求

性能黄金法则,我们必须减少用户下载html文档的时间,最基本的一个方法是必须减少http请求,包括image,合并CSS和JS文件。将图片编码成Base64数据嵌入网页

 

4.  避免重定向

在下列几种情况下可能会发生

1. 缺少结尾的斜线

2. 连接网站

3. 跟踪内部流量

4. 跟踪出站流量

5. 美化URL

 

5.  使用CDN

CDN是一组分布在多个不同地理位置的Web服务器用于更有效的向用户发布内容。

注:如果应用程序的web服务器离用户更近,则1个http请求的响应时间将缩短;如果组件web服务器离用户更近,则多个http请求的响应时间将缩短。同时,我们需要关注CDN Cache.例如修改了某个js文件,需要及时清除CDN Cache,甚至会出现不同步的情况。

 

6.  减少DNS查找

DNS查找可以被缓存起来以提高性能,通过Keep-Alive和较少的域名来减少DNS查找

 

7.  使用外部的Javascript和CSS

页面中尽量使用外部的js和css文件,虽然会带来额外的http请求访问时间,但是因为缓存机制会节省后期访问时http的请求。

特殊情况:主页。在主页中尽量将js和css写在页面中,这样会节省主页的访问时间。

两全其美的方式

A加载后下载

在主页加载外币之后,动态加载js和css文件。例如我们的loadJs和loadCss方法。

B 动态内联

可以使用例如cookie的方法,如果js加载过,则写入cookie一个值;动态检测cookie的值,如果不存在则加载,如果存在则跳出加载过程。

 

8.  精简Javascript,删除重复的脚本

精简:从代码中移除不必要的字符以减少其大小,进而改善加载时间。移除所有的注释和不必要的空白字符

混淆:除了精简,还将函数和变量的名字转换为更短的字符串。

配置Etag(Entity Tag)

 

9.  Etag是Web服务器和浏览器用于确认缓存组件的有效性的一种机制,是唯一标识了一个组件的一个特定版本的字符串.

GET /i/yahoo.gif HTTP1.1

Host: us.yimg.com

HTTP 1.1 200 OK

Last-Modified: Tue, 12 Dec 2006 03:03:59 GMT

Etag: “a531782d768ca1:dcc”

Content-Length:1195

GET /i/yahoo.gif HTTP 1.1

Host: us.yimg.com

If-Modified-Since: Tue, 12 Dec 2006 03:03:59 GMT

If-None-Match: “a531782d768ca1:dcc”

HTTP 1.1 304 Not Modified

问题:通常使用组件的某些属性来构造它,这些属性对以特定的、寄宿了网站服务器来说是唯一的。另一台不同的服务器发起请求,是不会匹配的。

 

 



 


高性能网站建设指南 “如果实现了Steve这些建议中的20%,你的站点就能出现戏剧性的变化。有了这本书和YSlow扩展,实在是没有理由再构建出运行速度缓慢的网站了。”         ——Joe Hewitt,Firebu9调试器和Mozilla的DOM解释器的开发者   “Steve Souders完成了一项神奇的工作,他提出了一系列简明的、可操作的,并且注重实效的开发步骤,使Web性能世界发生了翻天覆地的改变。”         ——Eric Lawrence,微软Fiddler Web Debugger开发者   想让你的网站显示得更快?本书提供了14种规则,可以使用户在请求页面时减少20%~25%的响应时间。作为Chief Performance Yahoo!,作者Steve Souders收集了在优化网络时访问最多的页面积累下来的最佳实践。即使网站已经进行了高度的优化——如Yahoo!Search和Yahoo!首页——我们也能从这些出奇简单的性能规则中获益。   《高性能网站建设指南》一书介绍了如何针对网站中的Ajax、CSS、JavaScript、Flash和图片进行性能优化。每个性能规则都提供了示例,在本书的配套网站上可以找到代码片段。这些规则包括:   •减少HTTP请求     •使用外部JavaScript和CSS   •使用内容发布网络   •减少DNS查找   •添力Expires头     •精简JavaScript   •压缩组件       •避免重定向   •将样式表放在顶部 •移除重复脚本   •将脚本放在底部   •配置ETag   •避免CSS表达式   •使Ajax可缓存   如果你希望构建高流量页面,并且改善用户访问网站的体验,那么本书是你不可或缺之物。   Steve Souders,Chief Performance Yahoo!,为Yahoo!的其他产品团队开发了性能分析工具,并致力于推广这些最佳实践和工具。在加盟Yahoo!之前,Stevee曾就职于多家中小型公司,其中有两家还是他协办的——Helix Systems和CoolSync。他是斯坦福大学管理科学与工程硕士。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值