亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

如何通過預加載器提升網頁加載速度

2019-11-17 01:36:21
字體:
來源:轉載
供稿:網友

如何通過預加載器提升網頁加載速度

  預加載器(PRe-loader)可以說是提高瀏覽器性能最重要的舉措。Mozilla 官方發布數據,通過預加載器技術網頁的加載性能提升了19%,Chrome測試了 Alexa 排名前2000名網站,性能有20%的提升。

  它并不是一門新技術,有人認為只有 Chrome 才具備這個功能。也有人認為它是有史以來提升瀏覽器性能最有效的方法。如果你第一次接觸預加載器,也許心中已經有了無數個問號。什么是預加載器?它是如何提升瀏覽器性能的?

 首先需要了解瀏覽器是如何加載網頁的

  一個網頁的加載依賴于腳本文件、CSS樣式文件。讓我們看看瀏覽器加載網頁的過程。

  • 首先,瀏覽器下載 HTML 并開始解析。如果瀏覽器發現外部CSS資源鏈接則發送下載請求。
  • 瀏覽器可以在下載CSS資源的同時,并行解析HTML文件,但是,一旦發現有腳本文件的引用,則必須等待腳本文件完成下載并且執行后才能繼續解析。
  • 腳本文件完成下載并且執行后,瀏覽器可以繼續解析HTML工作,如果遇到非阻塞資源 i.e. 圖片瀏覽器會發送下載請求并且繼續解析。

  即使瀏覽器可以并行執行多個請求,但是無法與針對腳本文件的操作并行執行。

  可以通過IE7打開鏈接中的網頁進行測試。我們可以看到,網頁head標簽內包含2個樣式文件和2個腳本文件。在body中,包含3個圖片、1個腳本文件。

  通過瀑布流我們可以查看資源加載的過程:

通過預加載器提升網頁加載速度

  腳本文件的下載和執行,會阻斷其他資源文件的下載,無疑將大大降低瀏覽器性能。

 預加載器如何提高網絡利用率

  2008 年,IE、WebKit和Mozilla都實現了預加載器功能,來提升網絡的利用率,改善腳本文件對其他資源文件的阻塞現狀。

  當瀏覽器被腳本文件阻塞時,另一個輕量級的解析器會繼續瀏覽剩余的標記,尋找需要下載的資源i.e. 樣式文件, 腳本文件,圖片 等。

  一旦發現,預加載器既可以在后臺開始接收這些資源,等待主解析器完成當前的腳本操作,其他資源已經完成下載,這樣就減輕了腳本阻塞帶來的性能損耗。

  下面這個瀑布流是使用IE8打開鏈接中網頁的結果,性能有顯著的提升:IE8=7S > IE7=14S。

通過預加載器提升網頁加載速度

  預加載功能仍然是各大瀏覽器廠商樂此不疲的實驗領域。很多瀏覽器嘗試設置資源下載的優先級。例如,Safari降低了不作用于當前視圖區域樣式文件的優先級。Chrome 則設置腳本文件的優先級高于圖片,即使腳本文件位于HTML底部。

 預加載器的陷阱

  預加載器只能檢索HTML標簽中的URL,無法檢測到使用腳本代碼添加的URL,直至腳本代碼執行時才可以獲取這類資源。

  我曾經遇到過一個通過javascript判斷當前Window寬度,進而決策加載CSS樣式文件的例子。預加載器無法識別此類資源。

<html><head> <script> var file = window.innerWidth < 1000 ? "mobile.css" : "desktop.css"; document.write('<link rel="stylesheet" type="text/css" href="css/' + file + '"/>'); </script> </head> <body> <img src="img/gallery-img1.jpg" /> <img src="img/gallery-img2.jpg" /> <img src="img/gallery-img3.jpg" /> <img src="img/gallery-img4.jpg" /> <img src="img/gallery-img5.jpg" /> <img src="img/gallery-img6.jpg" /> </body></html>

  上面這段代碼可以輕松的騙過IE9的預加載機制,在下面的瀑布流中我們可以看到,加載圖片占用了所有的連接,直至第一個圖片加載完成后,CSS文件才開始下載。

通過預加載器提升網頁加載速度

 影響預加載器的加載順序的因素

  當前,有幾種方式來控制預加載器的加載順序(使用javacript隱藏資源文件既是其中一種),同時,W3C Resource Priorities中也提供兩個特性來影響預加載器。

  lazyload : 直至沒有被標記為lazyload 資源下載完畢后才下載被標記資源。

  postpone: 資源在對最終用戶可見之后才開始下載。i.e. 標簽的display屬性被設置為 none。

 預加載VS預讀取

  預讀取(Pre-fetching)可以通知瀏覽器哪些資源可能會在未來的某一時機,在當前頁面或者其他頁面中使用。

  下面是預讀取的一個簡單的應用,通知瀏覽器為將要訪問的其他站點加載資源:

<link rel="dns-prefetch" href="other.hostname.com">

  Chrome允許我們預先通知瀏覽器加載未來會用到的資源,被聲明的資源將以較高的優先級被下載。

<link rel="subresource" href="/some_other_resource.js">

(Chromium 源碼中提到,被標記為subresource的資源下載的優先級低于樣式文件和腳本文件,但不低于圖片加載優先級)

  還有標記可以通知瀏覽器哪些文件是較低級別的預讀取文件。

  預讀取未來將被使用的獨立資源文件。

<link rel="prefetch" href="/some_other_resource.jpeg">

  通過預讀取方式,在后臺渲染整個頁面。

<link rel="prerender" >

 總結

  預加載不是一門新技術,它對提高瀏覽器性能具有紀念意義,我們不需要做任何操作既可以使用預加載。

  它廣泛應用,我測試了以下瀏覽器,都具有預加載功能:

  • IE8 / 9 / 10
  • Firefox
  • Chrome (inc Android)
  • Safari (inc iOS)
  • Android 2.3

  Bruce Lawson(Opera公司總裁)也宣布Opera Mini 同樣支持預加載。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩有码片在线观看| 日韩电影在线观看永久视频免费网站| 美女视频黄免费的亚洲男人天堂| 亚洲乱码一区av黑人高潮| 国产精品av网站| 91精品美女在线| 亚洲男子天堂网| 国产成+人+综合+亚洲欧美丁香花| 伊人久久精品视频| 久久全球大尺度高清视频| 欧美精品在线第一页| 亚洲精选中文字幕| 91久久精品在线| 美女久久久久久久久久久| 久久不射电影网| 久久久久久国产三级电影| 97国产精品视频| 日韩精品极品在线观看| 韩国19禁主播vip福利视频| 成人黄色中文字幕| 欧美性猛交xxxx乱大交| 亚洲国产精品va在线观看黑人| 日韩av在线一区二区| 久久久久久久久久久久av| 欧美激情视频在线免费观看 欧美视频免费一| 欧美激情18p| 伊人亚洲福利一区二区三区| 国产一级揄自揄精品视频| 久久精品99国产精品酒店日本| 少妇久久久久久| 国产精品视频中文字幕91| 日韩精品极品视频免费观看| 国产精品久久久久久亚洲调教| 日韩精品免费在线播放| 久久69精品久久久久久久电影好| 欧美视频免费在线观看| 久久999免费视频| 欧美激情va永久在线播放| 亚洲国产成人一区| 88xx成人精品| 久久久日本电影| 国产精品久久久久久久久| 久久国产精品久久国产精品| 欧美伊久线香蕉线新在线| 欧美日韩中文字幕综合视频| 国产精品盗摄久久久| 69av视频在线播放| 国产精品啪视频| 亚洲成人黄色网址| 亚洲欧美另类人妖| 国产精品美女久久久久av超清| 日韩va亚洲va欧洲va国产| 欧美激情乱人伦| 日韩视频亚洲视频| 亚洲精品动漫100p| 欧美午夜久久久| 91九色综合久久| 欧洲亚洲在线视频| 久久综合九色九九| 91精品国产自产在线观看永久| 国产精品影院在线观看| 97国产成人精品视频| 91精品国产免费久久久久久| 欧美—级a级欧美特级ar全黄| 97久久国产精品| 中文字幕视频在线免费欧美日韩综合在线看| 日韩欧美在线网址| 欧美福利小视频| 欧美日韩爱爱视频| 成人黄色影片在线| 亚洲国产小视频在线观看| 欧美巨猛xxxx猛交黑人97人| 欧美人交a欧美精品| 亚洲欧美日韩中文在线| 日韩亚洲一区二区| 91av成人在线| 亚洲美女动态图120秒| 欧美精品手机在线| 91精品国产自产在线观看永久| 中文字幕在线观看亚洲| 亚洲国产精品久久91精品| 亚洲精品一区中文字幕乱码| 日韩欧美在线网址| 欧美色另类天堂2015| 成人免费淫片视频软件| 永久免费毛片在线播放不卡| 亚洲国产成人精品久久久国产成人一区| 欧美激情视频一区| 1769国产精品| 在线播放国产一区二区三区| 少妇精69xxtheporn| 日韩免费看的电影电视剧大全| 国产日韩欧美成人| 欧美色视频日本高清在线观看| 国产精品久久久久久亚洲调教| 国内精品视频久久| 久久久久久久香蕉网| 欧美在线国产精品| 久久99精品久久久久久琪琪| 欧美夫妻性生活视频| 亚洲视频网站在线观看| 欧美性xxxx在线播放| 欧美性xxxx18| 国产成人精品一区二区| 国产在线精品播放| 日韩av综合中文字幕| 欧美一级在线播放| 亚洲另类欧美自拍| 亚洲美女视频网| 国内精品久久影院| 国产精品国语对白| 成人写真视频福利网| 精品中文字幕在线观看| 亚洲午夜色婷婷在线| 久久精品91久久久久久再现| 亚洲综合av影视| 亚洲精品电影在线观看| 91av在线不卡| 欧美黑人巨大精品一区二区| 亚洲精品成人久久久| 欧美激情一区二区三级高清视频| 亚洲精品国产福利| 欧美精品午夜视频| 成人女保姆的销魂服务| 亚洲欧洲高清在线| 成人性教育视频在线观看| 国产91成人在在线播放| 成人免费视频网| 国产免费一区二区三区在线能观看| 中文字幕视频一区二区在线有码| 欧美午夜性色大片在线观看| 国产成人激情小视频| 久久国产加勒比精品无码| 日韩亚洲精品电影| 在线播放亚洲激情| www.午夜精品| 亚洲第一在线视频| 亚洲黄色成人网| 久久久久成人精品| 久久精品人人爽| 日韩电影在线观看永久视频免费网站| 成人免费高清完整版在线观看| 久久人人爽人人爽人人片av高清| 国产精品大陆在线观看| 国产精品91久久| 日韩精品视频三区| 亚洲欧美日韩另类| 91久久久精品| 草民午夜欧美限制a级福利片| 中文字幕亚洲第一| 88国产精品欧美一区二区三区| 亚洲国产高清福利视频| 精品亚洲一区二区三区在线播放| 456亚洲影院| 国产91免费看片| 久久久久久久999| 4438全国亚洲精品在线观看视频| 国产精品91在线观看| 日韩精品在线播放| 欧美精品免费播放| 日韩av在线影院| 97视频国产在线| 欧美黄色免费网站| 中文字幕精品一区久久久久|