关于如何提高网站性能,你可以在很多网络博客上看到别人给出的建议。但是看多了你就会发现它们说的几乎都差不多。一般来说,这些都可以从雅虎的这篇文章:《Best Practices for Speeding Up Your Web Site》找到原型,这篇文章是雅虎给出的性能优化建议,给很多的Web性能优化者提供了不少的帮助。
看了那么多相似的博文,不如静下心来读几本书。阅读完整的书籍,能够让你系统性的构建你的知识体系,而博文的知识总是零散的。所以废话不多说,直接推荐书了。
1. 《高性能网站建设指南》
作者Steve Souders曾在Google工作,负责Web性能和开源组织。他的书《高性能网站建设指南》和《高性能网站建设进阶指南》阐述了他在Web性能上的最佳实践,以及这些实践背后的研究和真实结果。Steve也是Firebug的性能分析扩展YSlow的创建者,该工具已被下载超过100万次。Steve曾就职于Yahoo!,担任首席性能工程师,被称为Yahoo!超级巨星。这期间,他在Yahoo!开发者网络上发表了大量关于Web性能的博客文章。
这本137页的小书,真的是全篇无废话指南,短小精悍,堪称“前端工程师技能精髓”。作者给出了提升网站页面速度的14条最佳实践,而且都是你立马就可以操作上线的。应用这些规则,你的网站就能出线戏剧性的变化。
预览下这14条规则:
- 减少HTTP请求
- 使用内容发布网络
- 添加Expire头
- 压缩组件
- 将样式表放在顶部
- 将脚本放在底部
- 避免CSS表达式
- 使用外部JavaScript和CSS
- 减少DNS查找
- 精简JavaScript
- 避免重定向
- 移除重复脚本
- 配置ETag
- 使Ajax可缓存
客观来讲,你看了这些规则之后,可能会觉得没什么。因为里面很多规则都已经成为了建设网站的常识性知识,如:CDN、压缩组件、将样式表放在顶部、将脚本放在底部等等。这本书写作时代大概是2007年左右,所以必然有历史原因,里面的不少建议放到现在来看,都不是问题了,因为浏览器已经进步了,不需要再通过这些技术来Hack提升性能了。
但是,阅读本书不仅仅是学习这些干货知识点,你更需要学习到作者如何分析网站性能,如何想到办法提升网站性能,这才是我推荐你阅读本书的目的。
2. 《高性能网站建设进阶指南》
相比于第一本书,这本书在关于提速理论上讲得更加的详细。Steve还邀请了8位专家(都是牛人,没错,有你们的Douglas Crockford)分享了提升网站性能的最佳实践和实用建议,主要包括:理解Ajax性能,编写高效的JavaScript,创建快速响应的应用程序和无阻塞加载脚本,跨越共享资源,无损压缩图片大小,使用块编码加快网页渲染,避免或取代iframe的方法,简化CSS选择符以及其他技术。
这本书写于2009年,同样,由于互联网技术发展太快,书中讲解的部分知识放到现在却是过时了,但作者解决问题的思路绝对值得学习。
Steve的这两本书真的堪称Web性能优化的宝典,不管过时与否,我都推荐你阅读一番,绝对受益匪浅。
3. 《高性能JavaScript》
现在的网页不像10年前的网页那么简单,我们在浏览器中要运行大量的JavaScript,如果你使用JavaScript构建交互丰富的Web应用,那么JavaScript代码可能是造成你的Web应用速度慢的主要原因(这是为了要你读本书“吓唬”你的)。
这本书介绍的技术和策略能帮助你在开发过程中消除性能瓶颈。你将会了解如何提升各方面的性能,包括代码的加载、运行、DOM交互、页面生存周期等。雅虎的前端工程师 Nicholas C. Zakas 和其他五位JavaScript专家介绍了页面代码加载的最佳方法和编程技巧,来帮助你编写更为高效和快速的代码。你还会了解到构建和部署文件到生产环境的最佳实践,以及有助于定位线上问题的工具。
关于JS的优化技术再怎么都过时不了,但关于构建工具等由于历史原因,作者用了老的工具,你可以根据实际情况选用写在比较流行的工具。
4. 《速度与激情:以网站性能提升用户体验》
这本书英文版是2014年出版的,中文版是2016年出版的,算是很新的书籍了。这是本140页的短书,但都是满满的干货。
这本书都是用现代的眼光来分析页面速度,并推荐了很新的技术来解决这些问题。主要内容包括:页面加载速度的基础知识,图片格式和优化方法,HTML标记和样式的优化,如何用好响应式Web设计,网站性能的评估方法以及如何打造组织的性能文化。
其中打造组织的性能文化令我耳目一新,因为我一直以为性能优化是个技术活,在最后一张作者提出的这个观点,以及实践方法让我大开眼界。
写在最后
这些书都是我读过之后觉得很棒的书籍,才敢推荐给大家。我也在不断发掘好书,如发现,会更新在本文。