DNS預讀取的使用

前端陳晨發表於2018-12-18

X-DNS-Prefetch-Control 頭控制著瀏覽器的 DNS 預讀取功能。 DNS 預讀取是一項使瀏覽器主動去執行域名解析的功能,其範圍包括文件的所有連結,無論是圖片的,CSS 的,還是 JavaScript 等其他使用者能夠點選的 URL。

因為預讀取會在後臺執行,所以 DNS 很可能在連結對應的東西出現之前就已經解析完畢。這能夠減少使用者點選連結時的延遲。

開啟和關閉 DNS 預讀取

你可以通過在伺服器端傳送 X-DNS-Prefetch-Control 報頭,或是在文件中使用值為 http-equiv 的 <meta> 標籤:

<meta http-equiv="x-dns-prefetch-control" content="on">

強制查詢特定主機名

你可以通過使用 rel 屬性值為 link type 中的 dns-prefetch 的 <link> 標籤來對特定域名進行預讀取:

<link rel="dns-prefetch" href="http://www.baidu.com/">

在這個例子中,Firefox將預解析域名"www.baidu.com"。

而且, 元素也可以使用不完整的 URL 的主機名來標記預解析,但這些主機名前必需要有雙斜線:

<link rel="dns-prefetch" href="//www.baidu.com">

強制對域名進行預讀取在有的情況下很有用, 比如, 在網站的主頁上,強制在整個網站上頻繁引用的域名的預解析,即使它們不在主頁本身上使用。即使主頁的效能可能不受影響,這將提高整體站點效能。

相關文章