”小却用“的优化——标签中的预请求

995 阅读2分钟

合理的使用这些优化,可以让页面请求大大加快哦!

dns-prefetch

格式:< link rel = 'dns-prefetch' href = '//example.com'>
作用:使浏览器主动去执行域名解析的功能。这样在请求该地址时,就不用再dns解析了。

preconnect

格式:
< link rel = 'preconnect' href = '//example'>
< link rel = 'preconnect' href = 'cdn.example.com' crossorigin>
作用:使浏览器能够预先建立一个连接,等真正需要加载资源的时候就能够直接请求了。
浏览器会进行以下步骤:
解析href的属性值,如果是合法的URL,然后继续判断url的协议是否是http或者https,否则就结束处理。
如果当前页面host不同于href属性中的host,crossorigin被设置为anonymous(就是不带cookie了),如果希望带上cookie等信息可以加上crossorigin属性,就等同于设置为use-credentials。

prefetch

能够让浏览器预加载一个资源(html,js,css或者图片等),可以让用户跳转到其它页面时,响应速度更快。
虽然是预加载了,但是页面是不会解析或者js是不会直接执行的。

prerender

prerender不仅会加载资源,还会解析执行页面,进行预渲染。但是这都是根据浏览器自身进行判断,比如浏览器可能会:
分配少量资源对页面进行预渲染;
挂起部分请求直至页面可见时;
可能会放弃预渲染,如果消耗资源过多;
等等情况。

pr属性

以上四个属性:dns预加载、预连接、预加载、预渲染都支持pr属性,其属性值为0.0到1.0的范围值。
可以让浏览器判断优先加载哪些资源,毕竟浏览器内部是有可用的连接池的,资源紧张的情况下只能加载优先级更高的资源。


记录记录!