《高性能网站建设指南》

读了 《高性能网站建设指南》总结一下主要的几点

前端性能优化的非常的重要,作者在前面表示,10~20%的时间花在了后端的处理,80~90%花在的前端,所以优化前端的效果更加的明显。

1 减少http请求

这个是一个基础的优化方案,减少请求,那么怎么可以减少请求呢?

  1. 使用图片地图 就是在一张图上设置几个点击的效果
  2. 使用css的背景定位技术。把图片放在一章图上,然后呢,定位到展示的地方
  3. 使用base64这种在文本中的格式
  4. 合并javascript和css

2 添加expries头

Expires 设置了这个文件在什么时候过期,如果页面返回有这个头,那么就从缓存里面拿,减少一个http请求。
但是有个问题,但是我们不能保证服务器端的时间和客户端的时间是相同的,而且呢过期日期要经常检查,一旦时间过期还要再设置一个新的日期。

所以呢我们有加了一个属性
cache-control:max-age=9999.定义组件被缓存多少秒。从组件被请求开始的秒数少于max-age 定义的秒数,浏览器就可以使用缓存版本,加入定义了十年,那么你从请求这个文件开始的未来十年都不会再请求这个文件。

如果两个属性都定义了,那么max-age 会重写expires头。

可以通过修改文件名的方式改变缓存的失效时间。

3 使用内容分发网络

cdn加速。就是在不同物理地理位置存放服务器。让客户去距离最近的地方找文件,这样节省时间。但是我认为更高端的是类似骑牛这样的cdn供应商,可以将静态文件放在cdn上,减少本站的http请求,而且呢静态文件访问主站,也会带着cookie去这对网站的性能不好,那么静态文件去另一个网站,对主站的性能得到改善

4 减少DNS的操作

首先明白dns的处理机制,有浏览器缓存的先去浏览器找到域名对应的IP。如果浏览器没有,去操作系统里面找。操作系统里面没有回去host文件里面找。
文件里面也没有那就去ISP哪里找。哪里没有就去广域网里面找。如果我们缓存了,就不用这么多动作.那么我们的网站就会快很多

5 样式表放在页面head部分

这是为什么呢?按理说如果在下面,前面的图片等组件就可以先展示出来,不用等样式先加载就可以展示内容不是很好嘛?

其实呢这是浏览器的一种补救方法.因为如果放在页面下方,先出内容再出样式,会造成无样式内容的闪烁。而且会重绘页面,构建呈现树是一种浪费。为了让页面不闪烁,所以浏览器选择了白屏,加载完样式再显示。 所以呢将css 放在上面,白屏的时间变短了,而且闪烁的问题也没有了。

6 js放在页面的后面

js 会阻塞其他的文件的执行,如果放在上面,页面白屏的时间会变长,而且出错的话,有些错误是致命的,整个网页都停止在那里,无法执行下去。js还存在依赖关系。有的js要对文本做出修改,如果文本没有加载,找不到文本也会报错。

7 使用压缩技术

使用gzip压缩。

8 使用,解除Etag

Etag 是web 服务器和浏览器确认缓存组件是否有效性的一种机制

当Etag能对上,那么就从缓存里取304 ,如果对不上会请求200。但是如果系统用了负载就会对Etag造成干扰。因为如果四台服务器,只有四分之一的概率可能成功缓存。所以有了负载尽量不要使用这个属性.如果你没有负载,那么Etag是你除了Cache-control:max-age 之外的很好选择

9 避免css表达式

使用表达式会意想不到执行的次数。方法使用一次性表达式或者用js代替
建议少用css 表达式

10 使用外部JavaScript和css

纯粹的讲 :内联要比外联快
将文件放在内部还是外部是一个平衡的过程,具体要看你的这个页面的访问情况,
页面的浏览量,缓存的文件数量,组件的重用情况。
优点:
1. 组件可以重用
2. 组件可以缓存
3. 修改方便(自己感觉)
技术:先加载再下载(先内联再外联),动态内联(使用cookie决定是内联还是外联)

11 避免重定向

重定向会把你的页面变慢

12 精简JavaScript

去掉空格和其他的你没有必要的字符,变成 .min 的文件。还可以减少变量的命名长度,但是我反对把名字或者参数写成 _1, _2, _3, _4
这种没有营养标示

13 移除重复脚本

删除重复的脚本。这和工作的人数和约定有关吧。自己的项目中光jQuery就有数不清的版本,每个版本都有数不清的文件。在分工的时候,大家都会用自己的东西来写,造成重复的文件过多,并继承在同一个页面上。这个可能性很大。造成http 的浪费。

14 ajax

可以使用前面的部分原则来优化ajax这种特殊的方式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
高性能网站建设指南 “如果实现了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、付费专栏及课程。

余额充值