页面性能
提升页面性能的方法
- 资源压缩合并,减少HTTP请求
- 非核心代码异步加载 -> 异步加载的方式 -> 异步加载的区别
- 利用浏览器缓存 -> 缓存的分类 -> 缓存的原理
- 利用CDN
- 预解析 浏览器默认预解析(https默认关闭预解析)
dns-prefetchx-dns-prefetch-control
异步加载
异步加载的方式
浏览器缓存
资源文件在浏览器中存在的备份/副本
缓存的分类
强缓存
浏览器不询问服务器,直接使用本地的缓存
Expires 服务器的绝对时间,与浏览器时间可能存在偏差
Cache-Control 跟的是相对时间,以秒为单位,在3600S内直接使用缓存
都下发的话,以后者为准
协商缓存
浏览器发送请求询问服务器是否可以使用本地缓存文件
Last-Modified 服务器下发的
If-Modified-Since 请求的 带着的
If-None-Match
Etag Hash值
Last-Modified常与If-Modified-Since一起由客户端将Last-Modified值包括在HTTP头信息中发给服务端进行处理。
通过时间判断数据有没有更新不能很好的确定文件有没有更改;
Etag可以理解为根据文件内容计算的hash值;
ETag常与If-None-Match或者If-Match一起,由客户端通过HTTP头信息(包括ETag值)发送给服务端处理。