提升页面性能的方法有哪些?
1、资源压缩合并,减少HTTP请求(精灵图、图标字体)
2、非核心代码异步加载--------->异步加载的方式----------->异步加载的区别
3、利用浏览器缓存(最重要的)---------->缓存的分类----------------->缓存的原理
4、使用CDN(内容分发网络)
5、预解析DNS
<meta http-equiv="x-dns-prefetch-control" content="on">
<link rel="dns-prefetch" href="//host_name_to_prefetch.com">
异步加载:
异步加载的方式
1、动态脚本加载 2、defer 3、async
异步加载的区别:
1、defer是在HTML解析完之后才会执行,如果是多个,按照加载的顺序依次执行
2、async是在加载完成之后立即执行,如果是多个,执行顺序和加载顺序无关
浏览器缓存:
缓存的分类
1、强缓存(在过期时间内不会和服务器通信了,一般两个时间只有一个,但是两个时间都下发了,以相对时间为准)
Expires(过期时间) Expires:Thu,21 Jan 2017 23:39:02 GMT 是绝对时间,一般是服务器下发的
Cache-Control Cache-Control:max-age=3600 3600的单位是秒,是相对时间
2、协商缓存
Last-Modified(上次修改的时间,这个字段是服务器下发的) If-Modified-Since(这个是HTTP请求头里的字段,两个时间一样的) Last-Modified:Wed,26 Jan 2017 00:35:11 GMT
Etag If-None-Match