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