今天翻看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://down.”/>
<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://tool.”/>
DNS Prefetch應該盡量的放在網頁的前面,推薦放在<meta charset=”/>後面。
PS:dns預獲取可能會增加dns服務器的負擔。
可以通過下面的標簽禁止隱式的DNS Prefetch。
<meta http-equiv=”x-dns-prefetch-control” content=”off”>