国精品无码一区二区三区在线蜜臀-天堂а在线中文在线新版-欧美人与性动交α欧美精品-妺妺窝人体色777777-吃奶呻吟打开双腿做受在线视频

咨詢:189 3198 6878

售后:0311-87360066

如何通過預加載器提升網頁加載速度
發布時間:2013-10-31 點擊次數:

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

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

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

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

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

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

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

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

clip_image001

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

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

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

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

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

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

clip_image002

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

  預加載器的陷阱

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

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

  

  

  <script>

  varfile=window.innerWidth<1000?"mobile.css":"desktop.css";

  document.write('

  href="css/'+file+'"/>');</script>

  

  

  

  

  

  

  

  

  

  

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

clip_image003

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

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

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

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

  預加載VS預讀取

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

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

  

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

  

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

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

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

  

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

  

  總結

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

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

  IE8/9/10

  Firefox

  Chrome(incAndroid)

  Safari(inciOS)

  Android2.3

  BruceLawson(Opera公司總裁)也宣布OperaMini同樣支持預加載。


------------------------------------------------------------------------------------------
藍點網絡提供:
網站建設APP開發微信小程序400電話、軟件開發、服務器托管/租用等業務。
從2003年開始,我們始終堅守【網站建設】服務,19年從未放棄!!



咨詢:189 3198 6878 
 
售后:
0311-8736 0066

專注網站建設19年,服務客戶超7000家! 咨詢:189 3198 6878 售后:0311-87360066 早8:00—晚22:00(周一至周日) 在線咨詢
主站蜘蛛池模板: 无码人妻精品一区二区蜜桃百度| 日韩中文亚洲欧美视频二| 131美女爱做视频| 精品久久久久久久久中文字幕| 中国女人做爰视频| 色综合天天综合网国产成人网| 亚洲美女精品免费视频| 中文字字幕在线中文乱码| 少妇放荡的呻吟干柴烈火动漫| 国产97人人超碰caoprom三级| 欧美色欧美亚洲高清在线视频| 东京热人妻无码一区二区av| 黄色小说视频| 无码国产精成人午夜视频不卡| 精品不卡一区二区| 国产无遮挡吃胸膜奶免费看| 精品无码中文视频在线观看| 韩国精品无码少妇在线观看| 成年性午夜无码免费视频| 思思99热久久精品在线6| 亚洲中文久久精品无码1| 无码国产精成人午夜视频不卡 | 天美传媒一区二区| 狠狠热精品免费视频| 一边摸一边抽搐一进一出视频 | 国内精品卡一卡二卡三| 好爽毛片一区二区三区四| 亚洲精华国产精华精华液网站| 男人靠女人免费视频网站| 成人精品天堂一区二区三区 | 国产精品国产三级国产普通话| 老熟妇乱子伦牲交视频| 麻豆精品国产精华精华液好用吗| 国产精品久久久久久久久| 成人av片无码免费网站| 亚洲区欧美日韩综合| 成人片无码免费播放| 亚洲精品92内射| 精品动漫一区二区无遮挡| 涩欲国产一区二区三区四区| 精品久久久久久久久中文字幕|