HTML5中使用rel屬性預(yù)加載功能的方法-創(chuàng)新互聯(lián)

小編給大家分享一下HTML5中使用rel屬性預(yù)加載功能的方法,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

我們提供的服務(wù)有:成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、蒼梧ssl等。為上千家企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢(xún)和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的蒼梧網(wǎng)站制作公司

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

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

<link rel="prefetch" href="http://www.example.com/"> <!-- Firefox -->

但如果是google的話(huà),要用另外的一個(gè)名稱(chēng),即:

<link rel="prerender" href="http://www.example.com/"> <!-- Chrome -->

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

<link rel="prefetch" href="<?php echo get_next_posts_page_link(); ?>">

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

<link rel="prefetch" href="/images/test.jpg"/>

有了瀏覽器緩存,為何還需要預(yù)加載?

1.用戶(hù)可能是第一次訪(fǎng)問(wèn)網(wǎng)站,此時(shí)還無(wú)緩存
2.用戶(hù)可能清空了緩存
3.緩存可能已經(jīng)過(guò)期,資源將重新加載
4.用戶(hù)訪(fǎng)問(wèn)的緩存文件可能不是最新的,需要重新加載
5.Chrome 的預(yù)加載技術(shù)

現(xiàn)在的 chrome 聰明到根據(jù)你的瀏覽記錄,預(yù)測(cè)到你可能訪(fǎng)問(wèn)或搜索哪些網(wǎng)站,在你打開(kāi)網(wǎng)站之前就加載好了一些資源了。
舉個(gè)栗子,當(dāng)你在搜索框輸入 "amaz" 時(shí),它猜測(cè)到你可能要訪(fǎng)問(wèn) amazon.com,可能就幫你加載了這個(gè)網(wǎng)站的一些資源。
如果這個(gè)預(yù)測(cè)算法精準(zhǔn)的話(huà),就能大大地提高用戶(hù)的瀏覽體驗(yàn)了。

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

<meta http-equiv='x-dns-prefetch-control' content='on'>  
<link rel='dns-prefetch' href='http://g-ecx.images-amazon.com'>  
<link rel='dns-prefetch' href='http://z-ecx.images-amazon.com'>  
<link rel='dns-prefetch' href='http://ecx.images-amazon.com'>  
<link rel='dns-prefetch' href='http://completion.amazon.com'>  
<link rel='dns-prefetch' href='http://fls-na.amazon.com'>

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

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

<link rel='subresource' href='critical.js'>  
<link rel='subresource' href='main.css'>  
<link rel='prefetch' href='secondary.js'>

在 Firefox 中或用 meta 標(biāo)簽聲明:

<meta http-equiv="Link" content="<critical.js>; rel=prefetch">

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

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

<link rel='prerender' href='http://www.pagetoprerender.com'>

rel='prerender' 表示瀏覽器會(huì)幫我們渲染但隱藏指定的頁(yè)面,一旦我們?cè)L問(wèn)這個(gè)頁(yè)面,則秒開(kāi)了!
在 Firefox 中或用 rel='next' 來(lái)聲明

<link rel="next" href="http://www.pagetoprerender.com">

不是所有的資源都可以預(yù)加載

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

手動(dòng)觸發(fā)預(yù)渲染操作

在 head 中強(qiáng)勢(shì)插入 link[rel='prerender'] 即可:

var hint =document.createElement("link")   
hint.setAttribute(“rel”,”prerender”)   
hint.setAttribute(“href”,”next-page.html”)   
document.getElementsByTagName(“head”)[0].appendChild(hint)

看完了這篇文章,相信你對(duì)HTML5中使用rel屬性預(yù)加載功能的方法有了一定的了解,想了解更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司行業(yè)資訊頻道,感謝各位的閱讀!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線(xiàn),公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。

當(dāng)前標(biāo)題:HTML5中使用rel屬性預(yù)加載功能的方法-創(chuàng)新互聯(lián)
文章鏈接:http://m.kartarina.com/article42/dicohc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT微信公眾號(hào)外貿(mào)建站品牌網(wǎng)站設(shè)計(jì)全網(wǎng)營(yíng)銷(xiāo)推廣企業(yè)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司
主站蜘蛛池模板: 无码人妻一区二区三区在线| 亚洲久热无码av中文字幕| 一区二区三区无码高清| 久久久精品无码专区不卡| 男人的天堂无码动漫AV| 亚洲乱亚洲乱少妇无码| 无码日韩人妻精品久久蜜桃| 国产怡春院无码一区二区| 日韩精品无码AV成人观看| 免费无码午夜福利片 | 无码孕妇孕交在线观看| 永久免费无码网站在线观看| 色综合久久久久无码专区| 无码的免费不卡毛片视频| 中文字幕无码高清晰| 国产AV无码专区亚洲A∨毛片| 内射无码午夜多人| 18禁无遮挡无码网站免费| 精品亚洲AV无码一区二区三区| 野花在线无码视频在线播放| 成人无码区免费视频观看 | 亚洲爆乳大丰满无码专区| 无码伊人66久久大杳蕉网站谷歌| 精品无码久久久久久久动漫| 国语成本人片免费av无码| 无码人妻精一区二区三区| 麻豆亚洲AV永久无码精品久久| 亚洲一区精品无码| 国产产无码乱码精品久久鸭 | 国产成人无码区免费内射一片色欲| 无码一区18禁3D| 亚洲AV综合色区无码一二三区 | 少妇精品无码一区二区三区 | 一本天堂ⅴ无码亚洲道久久| 人妻无码αv中文字幕久久 | 免费无码毛片一区二区APP| 亚洲av无码一区二区三区网站| 无码免费一区二区三区免费播放| 无码国产乱人伦偷精品视频 | 孕妇特级毛片WW无码内射| 亚洲中文无码a∨在线观看|