最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解HTML5中rel屬性的prefetch預(yù)加載功能使用

簡書   發(fā)布時間:2016-05-06 11:18:31   作者:賴小賴小賴   我要評論
這篇文章主要介紹了HTML5中rel屬性的prefetch預(yù)加載功能使用,特別是在用戶第一次訪問Web頁面瀏覽器尚無緩存的時候,prefetch可以用作加速,需要的朋友可以參考下

在HTML5中,有個很有用但常被忽略的特性,就是預(yù)先加載(prefetch),它的原理是:
利用瀏覽器的空閑時間去先下載用戶指定需要的內(nèi)容,然后緩存起來,這樣用戶下次加載時,就直接從緩存中取出來,效率就快了.

舉個例子說明:比如要預(yù)先加載某個頁面,可以這樣:

XML/HTML Code復(fù)制內(nèi)容到剪貼板
  1. <link rel="prefetch" href="http://www.example.com/"> <!-- Firefox -->    

但如果是google的話,要用另外的一個名稱,即:

XML/HTML Code復(fù)制內(nèi)容到剪貼板
  1. <link rel="prerender" href="http://www.example.com/"> <!-- Chrome -->   

即使在不支持的瀏覽器,用了這個特性其實是不會出錯的,只不過瀏覽器解析不到而已,
所以,如果你感覺能有辦法預(yù)先預(yù)測到用戶期望點的頁面(比如用戶看最新的受歡迎的熱圖,他 可能看了第一頁后,會繼續(xù)看下一頁,這個時候就可以用預(yù)先加載這個特性了).比如

XML/HTML Code復(fù)制內(nèi)容到剪貼板
  1. <link rel="prefetch" href="<?php echo get_next_posts_page_link(); ?>">   

而單獨取一張圖片也是可以的,比如:

XML/HTML Code復(fù)制內(nèi)容到剪貼板
  1. <link rel="prefetch" href="/images/test.jpg"/>   

有了瀏覽器緩存,為何還需要預(yù)加載?
1.用戶可能是第一次訪問網(wǎng)站,此時還無緩存
2.用戶可能清空了緩存
3.緩存可能已經(jīng)過期,資源將重新加載
4.用戶訪問的緩存文件可能不是最新的,需要重新加載
5.Chrome 的預(yù)加載技術(shù)
現(xiàn)在的 chrome 聰明到根據(jù)你的瀏覽記錄,預(yù)測到你可能訪問或搜索哪些網(wǎng)站,在你打開網(wǎng)站之前就加載好了一些資源了。
舉個栗子,當你在搜索框輸入 "amaz" 時,它猜測到你可能要訪問 amazon.com,可能就幫你加載了這個網(wǎng)站的一些資源。
如果這個預(yù)測算法精準的話,就能大大地提高用戶的瀏覽體驗了。

DNS prefetch
我們知道,當我們訪問一個網(wǎng)站如 www.amazon.com 時,需要將這個域名先轉(zhuǎn)化為對應(yīng)的 IP 地址,這是一個非常耗時的過程。
DNS prefetch 分析這個頁面需要的資源所在的域名,瀏覽器空閑時提前將這些域名轉(zhuǎn)化為 IP 地址,真正請求資源時就避免了上述這個過程的時間。

XML/HTML Code復(fù)制內(nèi)容到剪貼板
  1. <meta http-equiv='x-dns-prefetch-control' content='on'>  
  2. <link rel='dns-prefetch' href='http://g-ecx.images-amazon.com'>  
  3. <link rel='dns-prefetch' href='http://z-ecx.images-amazon.com'>  
  4. <link rel='dns-prefetch' href='http://ecx.images-amazon.com'>  
  5. <link rel='dns-prefetch' href='http://completion.amazon.com'>  
  6. <link rel='dns-prefetch' href='http://fls-na.amazon.com'>  

應(yīng)用場景1:我們的資源存在在不同的 CDN 中,那提前聲明好這些資源的域名,就可以節(jié)省請求發(fā)生時產(chǎn)生的域名解析的時間。
應(yīng)用場景2:如果我們知道用戶接下來的操作一定會發(fā)起一起資源的請求,那就可以將這個資源進行 DNS-Prefetch,加強用戶體驗。

Resource prefetch
在 Chrome 下,我們可以用 link標簽聲明特定文件的預(yù)加載:

XML/HTML Code復(fù)制內(nèi)容到剪貼板
  1. <link rel='subresource' href='critical.js'>  
  2. <link rel='subresource' href='main.css'>  
  3. <link rel='prefetch' href='secondary.js'>  

在 Firefox 中或用 meta 標簽聲明:

XML/HTML Code復(fù)制內(nèi)容到剪貼板
  1. <meta http-equiv="Link" content="<critical.js>; rel=prefetch">  

rel='subresource' 表示當前頁面必須加載的資源,應(yīng)該放到頁面最頂端先加載,有最高的優(yōu)先級。
rel='prefetch' 表示當 subresource 所有資源都加載完后,開始預(yù)加載這里指定的資源,有最低的優(yōu)先級。
注意:只有可緩存的資源才進行預(yù)加載,否則浪費資源!

Pre render
前面說到的預(yù)解析DNS、預(yù)加載資源已經(jīng)夠強悍了有木有,可還有更厲害的預(yù)渲染(Pre-rendering)!
預(yù)渲染意味著我們提前加載好用戶即將訪問的下一個頁面,否則進行預(yù)渲染這個頁面將浪費資源,慎用!

XML/HTML Code復(fù)制內(nèi)容到剪貼板
  1. <link rel='prerender' href='http://www.pagetoprerender.com'>  

rel='prerender' 表示瀏覽器會幫我們渲染但隱藏指定的頁面,一旦我們訪問這個頁面,則秒開了!
在 Firefox 中或用 rel='next' 來聲明

XML/HTML Code復(fù)制內(nèi)容到剪貼板
  1. <link rel="next" href="http://www.pagetoprerender.com">  

不是所有的資源都可以預(yù)加載
當資源為以下列表中的資源時,將阻止預(yù)渲染操作:
1.URL 中包含下載資源
2.頁面中包含音頻、視頻
3.POST、PUT 和 DELETE 操作的 ajax 請求
4.HTTP 認證(Authentication)
5.HTTPS 頁面
6.含惡意軟件的頁面
7.彈窗頁面
8.占用資源很多的頁面
9.打開了 chrome developer tools 開發(fā)工具

手動觸發(fā)預(yù)渲染操作
在 head 中強勢插入 link[rel='prerender'] 即可:

JavaScript Code復(fù)制內(nèi)容到剪貼板
  1. var hint =document.createElement("link")   
  2. hint.setAttribute(“rel”,”prerender”)   
  3. hint.setAttribute(“href”,”next-page.html”)   
  4. document.getElementsByTagName(“head”)[0].appendChild(hint)  

相關(guān)文章

  • html5基于鼠標滾動控制植樹生長動畫特效源碼

    這是一款html5基于鼠標滾動控制植樹生長動畫特效源碼,伴隨著鼠標滾輪的滾動可呈現(xiàn)出樹木生長的動畫效果。整體動畫漸變效果流暢自然
    2016-05-13
  • 【HTML5】Canvas繪制簡單圖片教程

    下面小編就為大家?guī)硪黄綡TML5】Canvas繪制簡單圖片教程。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧,祝大家游戲愉快哦
    2016-05-13
  • HTML5實現(xiàn)頁面切換激活的PageVisibility API使用初探

    這篇文章主要介紹了HTML5實現(xiàn)頁面切換激活的PageVisibility API使用初探,PageVisibility可以使我們在切換瀏覽器tab頁面時自動停止和播放視頻,需要的朋友可以參考下
    2016-05-13
  • HTML5的Geolocation地理位置定位API使用教程

    地理位置(Geolocation)是 HTML5 的重要特性之一,提供了確定用戶位置的功能,借助這個特性能夠開發(fā)基于位置信息的應(yīng)用,今天這篇文章就向大家介紹一下HTML5的Geolocation地理
    2016-05-12
  • HTML5中的強制下載屬性download使用實例解析

    鏈接中加入download屬性可以使用戶將文件下載下來而不是直接用瀏覽器打開,截止到目前為止對HTML5提供支持的瀏覽器已經(jīng)對這個屬性支持得比較好了,下面我們就來詳細看一下HTM
    2016-05-12
  • HTML5事件方法全部匯總

    下面小編就為大家?guī)硪黄狧TML5事件方法全部匯總。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考,一起跟隨小編過來看看吧
    2016-05-12
  • HTML5全屏響應(yīng)式縮放切換幻燈片代碼

    HTML5全屏響應(yīng)式縮放切換幻燈片代碼是一款切換的時候當前slide會平滑縮小并移動,下一個slide會從縮小狀態(tài)逐漸放大并移動到屏幕中間,效果不錯。需要的朋友前來下載源碼哦
    2016-05-10
  • html5 canvas實現(xiàn)的“我們要發(fā)財了”游戲源碼

    這是一款基于html5 canvas實現(xiàn)的“我們要發(fā)財了”游戲源碼。運行該源碼按照游戲規(guī)則找到鑰匙打開寶箱即可獲得勝利,游戲中的小人使用鍵盤的方向鍵控制
    2016-05-10
  • html5實現(xiàn)的仿網(wǎng)頁版微信聊天界面效果源碼

    這是一款基于html5實現(xiàn)的仿網(wǎng)頁版微信聊天界面效果源碼,可實現(xiàn)微信網(wǎng)頁版聊天界面效果,在編輯框編輯文字之后按Ctrl+Enter鍵即可提交文字到聊天對話框上
    2016-05-09
  • html5 canvas實現(xiàn)的3D飛行飛行動畫特效源碼

    這是一款基于html5 canvas實現(xiàn)的3D飛行飛行動畫特效源碼,其中3D飛行的飛機使用了Three.js插件,3D庫使WebGL的簡單實現(xiàn)。且飛機動畫效果還可響應(yīng)鼠標實現(xiàn)移動與遠景近景等
    2016-05-05

最新評論

宁都县| 成都市| 洞口县| 梁山县| 高邮市| 眉山市| 惠水县| 五指山市| 杭锦后旗| 汝阳县| 玉溪市| 崇文区| 铁力市| 黔南| 白银市| 宁安市| 且末县| 会泽县| 鱼台县| 积石山| 扎鲁特旗| 陕西省| 项城市| 社旗县| 鄂托克前旗| 抚顺县| 郁南县| 巍山| 玉山县| 龙口市| 沙湾县| 泰安市| 凤庆县| 洪洞县| 垦利县| 石泉县| 布尔津县| 尖扎县| 清徐县| 澄迈县| 遵义市|