高性能网站建设指南
性能黄金法则:
只有10%-20%的最终用户响应时间花在了下载HTML文档上,其余80%-90%时间花在了下载页面中的所有组件上。
规则一减少HTTP请求
图片地图:
<img usemap="#map1" border="0" src="images/demo1.gif" alt="" /> <map name="map1"> <area shape="rect" coords="0,0,131,131" href="http://www.baidu.com" alt="baidu" /> <area shape="rect" coords="0,0,231,131" href="http://www.163.com" alt="163" /> </map>
CSS Sprites:比较常用的,不做案列了。
内联图片:节省了HTTP请求,但浏览器不会缓存这种图像。
合并脚本和样式表:一个网站最好不要超过7个脚本/3个样式表
可以用grunt工具合并JS文件(不要问我怎么用,我也没怎么用)
规则二使用内容发布网络
内容发布网络(CDN)就是一组分布中不同地理位置的Web服务器,更加有效地像用户发布内容。
具体的有:360http://libs.useso.com/ BootCDN的 http://www.bootcdn.cn/
如果有好的CDN ,麻烦你告诉我,谢谢!
规则三添加Expires头
<!-- expires 表示网页在浏览者计算机缓存中的过期时间 -->
<meta http-equiv="expires" content="Web,26 Apr 2026 20:00:00 GMT " />
<!-- 使用带有max-age的cache-control指定组件被缓存多久 -->
<meta http-equiv="cache-control" content="max-age=315360000" />
设置Apache模块(图片脚本样式表的过期日期为自请求开始的10年后)
<FilesMatch "\.(gif|jpg|js|css)$"> ExpiresDefault "access plus 10 years" </FilesMatch>
为了保证用户获取最新的组件,需要在所有HTML页面中修改组件的文件名;
(最有效的解决方案是修改其所有链接)
将版本号嵌入到组件中的文件名中,能方便准确找到源代码文件。
规则四压缩组件
1配置Apache的gzip模块
mod_gzip
mod_deflate
2服务器的Vary响应头中包含Accept-Encoding
Varry: Accept-Encoding
3禁用代理缓存但避免了边缘情形缺陷
Cache-Control:Private