引言:去年的时候,公司的平台需要对访问速度等进行优化,大致的方向就是从缓存、压缩、减少请求等方面进行处理,不光需要对网络有一定的理解,也需要对浏览器的机制以及前端的技术等有些许的了解,在这个过程中,阅读了《高性能网站建设指南》,其中就描述了雅虎的工程师们,总结出的“性能黄金法则”:“只有10%~20%的最终用户响应时间花在了下载HTML文档上。其余的80%~90%时间花在了下载页面中的所有组件上”。 最近又回顾赏读,并总结概述于此文,也便于以后的学习参考。 
1. 减少HTTP请求,图片地图、CSS Sprites、内联图片和脚本、脚本和样式表的合并。
2. 使用CDN(内容发布网络)。
3. 添加Expires头,修订文件名,比如为经常需要改变的文件添加版本号等。
4. 压缩组件,即减少HTTP相应的大小来减小响应时间。
5. 将样式表放在顶部,减少“白屏(Blank White Screen)”现象,尽量使用LINK标签将样式表放在文档HEAD中。
6. 将脚本放在底部,并行下载,脚本阻塞。
7. 避免CSS表达式,使用“一次性表达式”,事件处理器。
8. 使用外部JavaScript和CSS,纯粹而言,内联比外联快。加载后下载。
    示例:
    <script>function doLoad(){setTimeout("downloadComponents()",1000);}window.onload = doLoad;function downloadComponents(){downloadJS("http://...");downloadCSS("http://..");};function downloadJS(url){var elem = document.createElement("script");elem.src = url;document.body.appendChild(elem);};function downloadCSS(){var elem = document.createElement("link");elem.rel = "stylesheet";elem.type = "text/css";elem.href = url;document.body.appedChild(elem);};</script>
    也可以动态内联(使用cookie技术来实现)。
9. 减少DNS查找(Reduce DNS lookups),DNS缓存和TTL。
10. 精简JavaScript。
    混淆和节省,(工具:JSMin和Dojo Compressor),
    压缩和精简(Gzip and  Minification),
    精简CSS,最大的节省来自优化CSS-合并相同的类,移除不使用的类,最佳解决方案还是移除注释和空格,并进行一些直观的优化,比如使用缩写                (用“#606”代替“#660066”)和移除不必要的字符串(用“0”代替“0px”)。
11. 避免重定向。
    缺少结尾的斜线:有一种重定向最为浪费、发生的也很频繁的,但Web开发人员通常都没有意识到它。即“缺少结尾的斜线”。如:访问http://xx.com/xxx时,会导致一个301相应,其中包含一个到http://xx.com/xxx/的重定向。当然主机名后缺少结尾斜线是不会发生重定向的,如访问http://baidu.com,但在浏览器中看到的最终URL还是包含结尾斜线的,导致自动产生斜线的原因是,浏览器在进行GET请求时必须指定一些路径,如果没有路径,就会简单的使用文档根(/)。
    连接网站,一般是用户从旧的URL转移到新的URL的最简单的方式就是重定向,可以通过Alias、mod_rewrite、DirectorySlash和直接链接代码来避免重定向。
    跟踪内部流量,重定向经常用于跟踪用户的流量的流向,另一种方式选择是使用Referer日志来跟踪流量去向,每个HTTP请求都包含一个URL,表明从哪个页面发起的请求,也就是引用方(有的时候没有引用页,如当用户键入URL或只用书签时)。对于内部流量,也就是同一家公司各个网站之间的流量,是值得通过建立Referer日志来避免重定向,以此来节省最终用户相应时间。
    跟踪出站流量。
12. 移除重复脚本。
13. 配置ETag,实体标签(Entity Tag)是Web服务器和浏览器用于确认缓存组件的有效性的一种机制。
14. 使Ajax可缓存。
其他: 抓包探测工具,如IBM Page Detailer和HttpWatch等; 理解SSL响应式可缓存的;YSlow等级是页面响应的强指标,YSlow和FireBug结合。
本文主要是阅读的一些总结,如果需要看详细的性能优化及操作,可以看下去年在自己博客上写过的一篇文章,《 WEB性能优化实践-页面访问提速(HttpWatch观测).》。
如有问题,欢迎指出;如需转载,请标明出处,谢谢!
参考资料
  • 《高性能网站建设》
  • WEB性能优化实践-页面访问提速(HttpWatch观测).

《高性能网站建设指南》的阅读总结.相关推荐

  1. 读高性能网站建设指南

    读高性能网站建设指南 原文:读高性能网站建设指南 性能黄金法则:只有10%~20%的最终用户响应时间花在了下载HTML文档上.其余的80%~90%时间花在了下载页面中所有组件上 规则1:减少HTTP请 ...

  2. 高性能网站建设指南-前端性能优化(一)

    ​ 年前,读完了<高性能网站建设指南>,但是一直没有整理.年后回来和同事一起出了份前端面试题,涉及到了关于性能优化的问题,在此特梳理一下. ​ 大量的公司在开发功能业务时,只关注功能点的实 ...

  3. 高性能网站建设指南总结

    高性能网站建设指南总结 本文根据<高性能网站建设指南>一书进行总结,加上自己的理解和新的知识点进行补充添加. 规则1--减少HTTP请求 只有10%到20%的最终用户响应时间花在接收请求的 ...

  4. 性能之巅:《高性能网站建设指南》读书笔记

    性能之巅:<高性能网站建设指南>读书笔记 前言 去年笔者(Chainn)读完了几本前端性能优化以及HTTP等网络方面的书,并在生产环境做了部分应用.这些书包括<高性能网站建设指南&g ...

  5. 《高性能网站建设指南》学习笔记

    无意中看到同事有本<高性能网站建设指南>,趁着有时间借来读读. 简单的讲这是一本前端优化网站的书,作者总结了14条性能规则,我这里只记录下方便实用的方法. 规则一:减少HTTP请求 1.C ...

  6. 求【javascript设计模式】【高性能网站建设指南】PDF!哪位有给下啊!!!

    快哟,等下版主就给我移除了,就没有了啊...... 强烈推荐:<JavaScript设计模式> 理由:异常生猛的一本书,看书名带"设计模式"就知道,这本书想要读明白有点 ...

  7. 《高性能网站建设指南》勘误

    <高性能网站建设指南>勘误 P5(第1章) 倒数第1段倒数第3行 原文:如果你遵从所有适用于你的网站的规则,你的页面的加载速度会提高20%~25%,用户体验也将得到改善. 修改:如果你遵从 ...

  8. 高性能网站建设指南——网站优化的14条建议

    网站优化之--高性能网站建设指南 不考虑带宽大小,不考虑服务器性能如何,如何保证网站从服务器到用户浏览器这个过程是最快的,打开一个网站之前的用户体验是最好的呢.Steve Souders的高性能网站建 ...

  9. 读《高性能网站建设指南》有感

    这本书最大的特点是把管理人员和技术人员从传统的思维模式中解放出来,对于大多数管理人员和技术人员来说当谈到高性能网站和性能瓶颈时,总是习惯从系统硬件.网络.数据库.中间件.系统架构等方面去思考问题,诚然 ...

最新文章

  1. 为什么DL模型能够正确分类?SCOUTER(ICCV21')从“正”“反”方面说服你。
  2. 一条SQL语句在MySQL中是如何执行的
  3. 012 分析技能冷却二叉树
  4. sublime中文输入(转)
  5. 阿卡接口_阿卡vs风暴
  6. react-native viewpager用法
  7. 关于Android中的SlidingMenu中的用法
  8. xaf 设置内置(built-in actions)按钮的可用状态
  9. (转)Android text文字阴影设置
  10. 算法: 239. 滑动窗口的最大值
  11. 游戏必备组件_电脑必备软件~强大到~ 相识恨晚的感觉
  12. 精美网站登录界面 php,window_教你自己做xp精美登录界面,    一、在你的电脑 - phpStudy...
  13. Segmentree beats!---吉如一线段树学习笔记
  14. 小程序中如何引用阿里图标
  15. PS个人证件照片更换背景颜色
  16. 学校计算机硬件管理制度,学校规章制度之计算机硬件管理制度
  17. 08、Flutter FFI 内存管理
  18. 2023适老用品展、CISSE北京养老展、老年产业博览会
  19. javascript数组——新建数组、访问数组、遍历数组的方法、数组对象的方法、冒泡排序算法、json的正反序列化
  20. 利用 POI 修改插入图表

热门文章

  1. 新版标准日本语初级_第二十四课
  2. Vova and Trophies _Codeforces 1082B
  3. 微软认证授权服务器,oauth 2.0到微软认证服务器
  4. 各种CAD工艺流程图分享/锅炉、反渗透、磷铁矿选矿、水处理、SCR法处理硝酸尾气、选煤厂、焦煤矿选煤、电镀污水处理、聚丙烯腈原丝生产、合成氨脱硫工段、纯水系统、烟气脱硫、饮料车间设计……工艺流程图
  5. TextView的使用
  6. 皮肤晒黑了怎么快速变白,最好实用的?
  7. 最近开启新一轮投稿。。
  8. maya mb ma互转时报错解决方案
  9. c语言9999是合法常量吗,只会G代码不会宏程序,都不敢说自己是老师傅!
  10. 【MATLAB教程案例20】关于优化类算法的改进方向探索及matlab仿真对比分析