《高性能网站建设指南》阅读体会

简介:

今日阅读了《高性能网站建设指南》一书,该书的作者Steve Souders"为Yahoo!的开发团队构建了YSlow"。YSlow是Web页面性能分析工具,可以集成至Firebug,非常好用。书和工具是配套的,工具会在线更新,书印出来就不会再变了,因此,不难理解为什么这本书中提出了15条规则,工具已经是23条规则了。突然想到的是,既然工具已经做得这么好了,出新书怕是没人买了吧?无论怎样,还是要感谢Steve Souders的分享,也祝福他能够财源广进。

image

23条规则都在这里了:

  1. Minimize HTTP Requests(最小化HTTP请求次数)
  2. Use a Content Delivery Network(使用CDN加速)
  3. Avoid empty src or href(不要写src=""这样的代码)
  4. Add an Expires or a Cache-Control Header(设置缓存)
  5. Gzip Components(Gzip压缩)
  6. Put StyleSheets at the Top(CSS放在头部)
  7. Put Scripts at the Bottom(Script放在底部)
  8. Avoid CSS Expressions(避免使用CSS的表达式功能)
  9. Make JavaScript and CSS External(使用js和css文件)
  10. Reduce DNS Lookups(减少DNS寻址次数)
  11. Minify JavaScript and CSS(减小js和css的体积,例如去掉不必要的空格、换行和注释)
  12. Avoid Redirects(避免重定向)
  13. Remove Duplicate Scripts(避免重复导入同一个js文件)
  14. Configure ETags(配置或关闭ETags)
  15. Make AJAX Cacheable(AJAX也可以缓存)
  16. Use GET for AJAX Requests(AJAX请求中优先使用GET方法)
  17. Reduce the Number of DOM Elements(减少DOM元素的个数)
  18. No 404s(友好的错误提示会加大服务器资源开销,最好别出现)
  19. Reduce Cookie Size(Cookie小一点比较好)
  20. Use Cookie-Free Domains for Components(分离静态文件,禁用Cookie)
  21. Avoid Filters(不要使用滤镜)
  22. Do Not Scale Images in HTML(不要缩放图片)
  23. Make favicon.ico Small and Cacheable(缩小favicon.ico文件,配置成能缓存)

Yahoo!是大公司大网站。绝大多数情况下我们都是在经营或维护着中小网站,这23条规则是没有必要全部招呼上的;再就是Yahoo!也不是万能的,仅仅这23条规则未必够用。

我觉得前端优化总体而言是设计网站时要尽量把带宽用于传输有价值的内容、用于有意义的交互,再有就是要考虑人性的特点,例如正在传输图片时是不是可以先将文字部分显示出来?

不良的设计可以轻易的吃掉调优的成果,例如,尽管Gzip能压缩掉70%,但是也许还不如设计师少用一个图片节约得多呢。又如,可能好不容易响应时间2s以下了,javascript还能循环几次呢?

最后想说的是,一个好的产品或应用,无论是前端还是后台,都应该遵循"减少无意义的计算,增加人性化的计算"的基本原则。优化不必追求极限,用户满意就好。




 本文转自 hexiaini235 51CTO博客,原文链接:http://blog.51cto.com/idata/1129448,如需转载请自行联系原作者


相关文章
|
7月前
|
设计模式 SpringCloudAlibaba 负载均衡
每天打卡,跟冰河肝这些项目,技术能力嗖嗖往上提升
前几天,就有不少小伙伴问我,冰河,你星球有哪些项目呢?我想肝你星球的项目,可以吗?今天,我就给大家简单聊聊我星球里有哪些系统性的项目吧。其实,每一个项目的价值都会远超门票。
102 0
每天打卡,跟冰河肝这些项目,技术能力嗖嗖往上提升
|
Java 程序员
收藏!阿里毕玄16篇文章,深度讲解Java开发、系统设计、职业发展
阿里毕玄结合自己的经历深度讲解Java开发、系统设计、职业发展等问题,快来一键收藏吧。
34541 1
|
4月前
|
前端开发 JavaScript 开发工具
前端知识笔记(三十)———前端需要掌握的技术有哪些方面
前端知识笔记(三十)———前端需要掌握的技术有哪些方面
31 1
|
4月前
|
前端开发 JavaScript 开发工具
前端知识(八)———前端需要掌握的技术有哪些方面
前端知识(八)———前端需要掌握的技术有哪些方面
66 0
|
12月前
|
测试技术
测开-基础篇
测开-基础篇
103 0
|
9月前
|
前端开发 JavaScript Java
思维拉练前后端分离诞生记-系统学习八
通过5+6的需求的实现,以及不同版本的变化带来思考的过程;希望您用餐愉快。
|
9月前
如何系统性的阅读
如何系统性的阅读
47 0
|
消息中间件 NoSQL Dubbo
面经手册 · 第1篇《认知自己的技术栈盲区》
讲到技术盲区,先说说我自己。几年前我也是从传统行业跨到互联网,同时还是从C#开发转到Java开发,与其说转不如说是回归Java。从上大学到毕业实习,我都是做Java的,但入职第一家公司,由于技术积累以及需要用C#与中继器、IO板卡、摄像头等进行交互,以及开发的软件是部署到客户端的,所以整套服务都是C#与少部分的C语言进行编写。
229 0
面经手册 · 第1篇《认知自己的技术栈盲区》
|
设计模式 前端开发 JavaScript
系统性的前端知识
系统性的前端知识
94 0
系统性的前端知识
|
Java Linux 开发者
收藏!阿里毕玄16篇文章,深度讲解Java开发、系统设计、职业发展 | 技术日报(8期)
阿里毕玄结合自己的经历深度讲解Java开发、系统设计、职业发展等问题,快来一键收藏吧。
1754 0