HTML5的連結預取功能(link prefetching)是埋在沙裡的寶石,至今還很少人知道它的價值。 你可能已經知道了那古老而又聞名的圖片預先載入功能,連結預取功能就是將此概念由圖片擴展到了網頁內容(不需要任何AJAX程式碼)。
它是這樣運作的:在頁面上加入一個像這樣的連結:
這樣,當你的機器空閒時,瀏覽器就會自動的在後台把page2.html下載下來。 當用戶最終點擊了page2.html的連結時,瀏覽器會從快取裡把這個頁面取出來,所以這個頁面的載入速度會出乎意料的快。
目前只有火狐瀏覽器支援這個功能。但因為火狐目前是世界上擁有第二大用戶群的瀏覽器,所以只要你在HTML頁面了加上這樣的一句代碼,仍有相當大的一部分訪問者能體驗到這十分明顯的頁面加載速度的提高。很酷吧!
你可以在許多情況下可以使用鏈接預取功能:
* 當你有一篇篇幅很長的文章,或在線教程,或圖冊等,需要分成多頁顯示時。
* 在你的網站首頁預先載入那些使用者最可能造訪的下一頁。 (可能是一個商品網站上「重點推薦」商品頁面,或部落格網站上最近的一篇部落格)
* 搜尋查詢頁面預先載入搜尋出來的前幾條。
對於靜態的內容你也可以使用rel標記實現預取功能:
這裡還有其它一些有趣的事要注意:
* 連結預取功能不久將會在Opera, Chrome 和Safari 瀏覽器裡實現,但對於Internet Explorer,你估計要等到2020年。
* 如果這種功能被廣泛的使用,它會影響你的網站日誌和訪問統計。請考慮這樣的情況,你的一個頁面預先訪問了好幾個頁面,可用戶實際上沒有訪問到這幾個頁面。 你的伺服器(或統計工具)並不知道這兩者之間的差異。
為了分清這個,Firefox會在HTTP頭訊息裡發送X-moz: prefetch訊息,但你需要在伺服器端有什麼東西能辨識這種訊息。