dns-prefetch( DNS – Domain Name System,域名系统) DNS 预解析
<link rel="dns-prefetch" href="//cdn.staticfile.org" />
浏览器访问一个链接时,并不是直接将请求到网页对应的服务器上,而是先要访问域名服务器做域名解析,此时就会出现网路开销,一般要要几十毫秒到几百毫秒之间。
dns-prefetch指令可以在尚未访问 url 的时候提前做 dns 解析缓存(和其他页面加载并行执行),从而在真正请求 url 的时候避免对 dns 服务器的解析,达到加速网页加载的目的。
在 Chrome 中默认已经开启对静态资源的 dns 预解析,所有的a标签的href都会自动去启用DNS Prefetching,也就是说,网页的a标签href带的域名,是不需要在head里面加上link手动设置的,但是标签的默认启动在HTTPS不起作用,需要设置<meta http-equiv="x-dns-prefetch-control" content="on">
开启.
preconnect
<link rel="preconnect" href="https://example.com">
MDN <link> 元素的 rel 属性的 preconnect 关键字是对浏览器的一种提示,即用户很可能需要来自目标来源的资源,因此浏览器很可能通过抢先启动与该源的连接来改善用户体验。通过抢先执行部分或全部握手(HTTP 为 DNS+TCP,HTTPS 为 DNS+TCP+TLS),预连接可加快未来从给定源加载的速度
Preload Prefetch
preload和prefecth是link标签上的属性,在常用用法里无法加载js,只能加载css,但是如果使用prefetch和preload,就可以加载js。preload或prefetch存储其实是在disk cache,也就是硬盘缓存。