1.资源压缩合并,减少http请求;
2.非核心代码异步加载;
异步加载的方式:
a.动态脚本加载; b.defer; c.async;
defer:在HTML解析完成之后才会执行,并按照加载顺序执行;
async:在加载完成之后立即执行,和加载顺序无关。
3.利用浏览器缓存;
缓存的分为强缓存和协商缓存;
强缓存:
Expires: 值为服务器下发的一个服务器绝对时间;
Catch-Control: max-age=3600; 单位秒,使用客户端时间,1小时后失效。
协商缓存:
Last-Modified:最后一次的下发资源的时间;
If-Modified-Since:当强缓存失效后,发送请求时会携带这个最后一次的下发资源的时间;
Eyag ;
If-None-Match;
4.使用CDN,让用户快速的下载到资源,尤其是在首次加载页面无法利用浏览器缓存时;
预解析DNS:
<link rel="dns-prefetch" href="http://host_name_to_prefetch"/> //开启预解析
<link rel="dns-prefetch" href="http://host_name_to_prefetch"/> //开启预解析
强制打开<a>标签的DNS与解析:
<meta http-equiv="x-dns-prefetch-control content="on"/>