1.资源压缩合并,减少http请求
2.非核心代码异步加载-异步加载的方式-异步加载的区别
- 异步加载的方式
(1)动态脚本加载 (2) defer (3) async
- 异步加载的区别
(1) defer是在html解析完之后才会执行,如果是多个,按照加载的顺序依次执行
(2)async是在加载完之后立即执行,如果是多个,执行顺序和加载顺序无关
3.利用浏览器缓存-缓存的分类-缓存的原理
缓存的分类 :
(1)强缓存
http请求头中 会有缓存信息 Expires是服务器下发时间(绝对时间) Cache-Control是相对时间(相对于客户端),缓存距离上次中间间隔时间。在此时间之前不会发请求。如果两个都有 以相对时间为准。
Expires Expires:Thu,21 May 2020 23.20 **
Cache-Control Cache-Control:max-age=3600
(2)协商缓存
当强缓存失效之后,发请求 会让 if-Modified-Since携带Last-Modified(服务器下发的时间)发请求,服务器需要对比。如果时间变了但是内容没变,就看Etag
Last-Modified(上次修改的时间) if-Modified-Since Last-modified:Thu,21 May 2020 23.20 **
Etag if-None-Match 相当于hash
4.使用cdn
5.预解析DNS
高级浏览器默认 a标签 开启了dns预解析的功能,但是 https请求时没有开启,下边这一行强制开启 dns预解析,放在head里面
<meta http-equiv="x-dns-prefetch-control" content="on">
dns预解析:<link rel="dns-prefetch" href="//***.com">