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