建设高性能网站的14种方法笔记
1、减少http请求
- 使用精灵图
- 内联图片
- 合并脚本和样式表
- 因为每个文件都会导致一个额外的请求
2、使用内容发布到网络(CDN)
3、添加Expires头
- 适用于不是动态变化的资源,如图片
- 浏览器(和代理)使用缓存来减少HTTP请求的数量,并减少HTTP响应的大小,使web浏览器的页面加载更快,使用Expires头告诉客户端它可以使用一个组件的当前副本,直到指定的时间为止。HTTP规范中简要的称该头为“在这一日期/时间之后,响应将被认为是无效的”。它在HTTP响应中发送。
Expires:Mon Oct 10 2022 08:00:00 GMT+0800
以上是一个长久的Expires头,告诉浏览器有效性持续到2022年。
- Max-Age
- Max-Age和mod_expires为除Expires之外的选择,HTTP1.1引入Cache-COntrol头来克服Expires头的限制,因为Expires头使用一个特定的时间,要求服务器与客户端的时间严格同步,另外,过期日期需要经常检查,并且一旦未来到达这个时间,还要在服务器配置中提供一个新的日期。
- Cache-COntrol使用Max-Age指令指定组件被缓存多久。以秒为单位定义了一个更新窗。如果组件被请求开始过去的秒数少于max-age,浏览器就使用缓存的版本。
Cache-COntrol:max-age=10000000
- Max-Age与Expires头可同时指定,HTTP规范规定Max-Age指令将重写Expires头。
- mod_expires
- 为了避免Expires的时间同步问题,可使用mod_expires模块,它可以使Expires头设置的时间成为相对时间。
- 即使用ExpiresDefault设置Expires头
4、压缩组件
- 从HTTP1.1开始,web客户端可以通过HTTP请求中的Accept-Encoding头来表示对压缩的支持。
Accept-Encoding:gzip,deflate
- web服务器通过响应中的Content-Encoding头来通知web客户端。
Content-Encoding:gzip
- 注意
- 通常压缩脚本以及样式表。
- 图片和pdf不应该被压缩。因为他们本身就是压缩的。再次压缩可能会让其变大
- 通常对大于1KB或2KB的文件进行压缩。mod_gzip_minimum_file_size指令控制着希望压缩文件的最小值,默认500B。
- Apache版本对应
- Apache1.3--mod_gzip常用指令
//启用
mod_gzip_on
//包括哪些文件
mod_gzip_item_include file \.js$
mod_gzip_item_include mime ^application/x-javascript$
//不包括哪些文件
mod_gzip_item_exclude file \.css$
mod_gzip_item_exclude mime ^text/css$
//压缩过的内容自动保存在磁盘上,并在原始内容发生变化时更新压缩过的内容
mod_gzip_can_negotiate
mod_gzip_update_static
- 代理缓存
//压缩的和未压缩的都会进行缓存,使用的时候相应使用
Vary:Accept-Encoding
- 边缘情形
即通过制定浏览器白名单
5、将样式表放在顶部
- 使用@inport引入的样式表依然是最后下载。
6、将脚本放在底部
7、避免使用css表达式
8、使用外部js和css
9、减少DNS查找
10、精简js
- 使用JSMin工具。
11、避免重定向
- 重定向会使你的页面变慢
12、删除重复脚本
13、配置ETag
- etag是web服务器和浏览器用于确认缓存有效性的一种机制。
14、使ajax可缓存
总结,总体来说这本书的推荐指数为🌟🌟🌟。内容一般。。。