高性能网站建设指南
之前一个机械化工类企业网站项目:发现项目原网站确实卡的不行。
项目结束之后,与之前原网站对比了一下,性能优化的大有可侃之处。
总结归纳了一下高性能建站的经验方法。
结合《高性能网站建设指南》一书[作者:美 · Steve Souders 著 && 刘彦博 译]专业的剖析,这里博客一撒,分享一下此书与经验。
Web前端开发精髓
网站性能优化 参考点:
-
规则1:减少HTTP请求
方法:使用图片地图<map>
、CSS Sprites
图片、内联图片base64
、合并脚本和样式表 -
规则2:使用内容发布网络 ( CDN )
CDN是指:一组分步在多个不同地理位置的web服务器,勇于更加有效地向用户发布内容。
通常指在讨论性能问题时回提到它的性能,同时它还能节约成本!
在优化性能时,向特定用户发布内容的服务器的选择基于对网络可用度的测量。
例如: CDN可能选择网络阶跃数最小的服务器,或者具有最短响应时间的服务器。
过度依赖CDN,易受竞争对手流量、CDN服务的性能下降、无法直接控制CDN组件服务器、用户切换到CDN地理位置远近,等等多个因素的影响。
- 规则3:添加Expires头
为组件添加长久的Expires头。这样后续浏览器直接从磁盘上读取它,避免一个HTTP请求。
反之,浏览器会向原始服务器发送一个条件GET请求,如果组件没有改变,原始服务器可以免于发送整个组件,而是发送一个很小的头,告诉浏览器可以使用其缓存的组件。
-
规则4:压缩组件
压缩网站的HTML文档、样式表、JavaScript脚本。
这样可以有机会将页面数据量减少70%以上。 -
规则5:将样式表放在顶部
<head>标签
内
使用<link />
标签将样式表放在文档的head中。
这样可以避免白屏、无样式内容的闪烁。 -
规则6:将脚本放到底部
是最佳情况
并行下载多个图片等文件时,可避免脚本阻塞下载。
很多时候,无法将js脚本移到底部。
尤其像
:脚本使用document.write向页面内插入内容、作用域问题,等等
还有就是:建议使用延迟
脚本
-
规则7:避免CSS表达式
-
规则8:将JavaScript和CSS放到外部文件中
尽量使用外联!
纯粹而言,内联更快一些!
组件重用,避免两个极端:
- 避免为每个页面提供一组分离的外部文件
- 避免创建一个单独的、联合了所有的JavaScript的文件,在创建一个包含所有CSS的文件。
-
规则9:减少DNS请求
通过使用Keep-Alive和较少的域名来减少DNS查找 -
规则10:精简JavaScript
两种方法:精简
(简单又安全)、混淆
(更复杂,增加对代码反向工程的难度,提高性能,比精简更能减小代码的大小;但是也有 缺陷: 可能发生引入错误, 维护: 易改变了JavaScript符号,所以需要提前标记API函数等等所有任何不能改变的符号, 调试: 很难阅读) -
规则11:避免重定向
重定向是web页面变慢。
缺少结尾的斜线/
如果没有出现比如:
重定向访问http://astrology.yahoo.com/astrology时产生的,将导致多出一个301响应,其中将会包含一个到http://astrology.yahoo.com/astrology/的重定向
跟踪内部流量、跟踪出站流量、美化URL
-
规则12:删除重复脚本
重复脚本损伤性能,避免重复脚本。确保脚本只被包含一次! -
规则13:配置ETag
配置或移除ETag -
规则14:使Ajax可缓存
确保Ajax请求遵守性能指导,尤其应具有长久的Expires头。
以上就是关于 “ 高性能网站建设指南 ” 的全部内容。