DNS預獲取(dns-prefetch)
阿新 • • 發佈:2019-01-01
今天翻看twitter的原始碼的時候看到了一下內容:
<link rel=”dns-prefetch” href=”http://a0.twimg.com”/>
<link rel=”dns-prefetch” href=”http://a1.twimg.com”/>
<link rel=”dns-prefetch” href=”http://a2.twimg.com”/>
<link rel=”dns-prefetch” href=”http://a3.twimg.com”/>
<link rel=”dns-prefetch” href=”http://api.twitter.com”/>
查閱了相關資料,知道DNS Prefetch也就是DNS預獲取,也是前段優化的一部分。在前段優化中關於DNS的有兩點:一是減少DNS的請求次數,第二個就是進行DNS預先獲取。
DNS Prefetch 已經被下面的瀏覽器支援
- Firefox: 3.5+
- Chrome: Supported
- Safari 5+
- Opera: Unknown
- IE: 9 (called “Pre-resolution” on blogs.msdn.com)
預設情況下瀏覽器會對頁面中和當前域名(正在瀏覽網頁的域名)不在同一個域的域名進行預獲取,並且快取結果,這就是隱式的DNS Prefetch。如果想對頁面中沒有出現的域進行預獲取,那麼就要使用顯示的DNS Prefetch了,也就是使用link標籤:
<link rel=”dns-prefetch” href=”http://api.twitter.com”/>
DNS Prefetch應該儘量的放在網頁的前面,推薦放在<meta charset=”/>後面。
PS:可以通過下面的標籤禁止隱式的DNS Prefetch。
<meta http-equiv=”x-dns-prefetch-control” content=”off”>