国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

資源加載和頁面事件

張遷 / 2878人閱讀

摘要:如果添加了屬性,那么和的時間差取決于的下載和執行時間。表示告訴瀏覽器,這段在后執行。一旦執行完,就會觸發如果屬性為,那么和又幾乎沒什么區別了,因為的解析不會阻塞,也不阻塞事件。頁面上的元素已經加載完畢了。動態插入的圖片會阻塞事件,不會。

domLoading

瀏覽器開始解析dom樹的時間點

domInteractive

表示瀏覽器已經解析好dom樹了。

domContentLoaded

同步的JS已經執行完畢了。

這里需要再解釋一點:

由于同步JS會阻塞Dom的解析,因此在有同步JS的情況下,domInteractive和domContentLoaded的區別不大。

如果JS添加了defer屬性,那么domInteractive和domContentLoaded的時間差取決于JS的下載和執行時間。defer JS表示告訴瀏覽器,這段JS在domInteractive后執行。見http://www.w3.org/TR/html5/syntax.html#the-end 。一旦執行完defer JS,就會觸發domContentLoaded.

如果JS屬性為async,那么domContentLoaded和domInteractive又幾乎沒什么區別了,因為js的解析不會阻塞dom,也不阻塞domContentLoad事件。

onload

頁面上的元素已經加載完畢了。包括所有CSS, JS, Image等等。

一些小實驗

以下示例均采用blocking做實驗,可以訪問在線版。

疑問1:同步的JS通過document.write寫入JS script會不會延遲DomContentLoaded?

結論:會。從例子中可以看到,DomContentLoaded必須等到同步寫入的JS文件寫完才觸發。

代碼:





  
  {{flush 1000}}
  

Hello World

時間線:

疑問2: 同步的JS動態插入defer JS會不會延遲DomContentLoaded?

結論:不會延遲comContentLoaded,但會阻塞onload的時間。需要補充的是,即便是動態插入沒有defer的JS,也不會延遲DomContentLoaded.

對于如下代碼:





  
  {{flush 1000}}
  

Hello World

時間線如下:(藍色為主文檔,黃線為JS文件)

疑問3:如果在domContentLoaded的時刻動態插入(同步/defer/async)的script,會不會阻塞onload事件?

結論:(同步/defer/async)均會阻塞onload事件。

代碼(以defer為例):




  


  
  {{flush 1000}}
  

Hello World

時間線:

  

上面的兩個小實驗應證的是規范中的:Spin the event loop until the set of scripts that will execute as soon as possible and the list of scripts that will execute in order as soon as possible are empty.

疑問三:如果在domContentLoaded時動態插入CSS/圖片/iframe,會阻塞onload事件嗎?

結論:會阻塞。動態插入的圖片/CSS會阻塞onload事件,iframe不會。

代碼(以image為例):











  {{flush 1000}}


Hello World

結果:

【更多待補充...】

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/85413.html

相關文章

  • 頁面生命周期:DOMContentLoaded, load, beforeunload, unloa

    摘要:所以有可能在所有腳本執行完畢后觸發。如果用戶即將離開頁面或者關閉窗口時,事件將會被觸發以進行額外的確認。狀態表示事件即將被觸發。總結頁面事件的生命周期事件在樹構建完畢后被觸發,我們可以在這個階段使用去訪問元素。 頁面生命周期:DOMContentLoaded, load, beforeunload, unload 原文地址:http://javascript.info/onload.....

    lx1036 評論0 收藏0
  • 頁面生命周期:DOMContentLoaded, load, beforeunload, unloa

    摘要:所以有可能在所有腳本執行完畢后觸發。如果用戶即將離開頁面或者關閉窗口時,事件將會被觸發以進行額外的確認。狀態表示事件即將被觸發。總結頁面事件的生命周期事件在樹構建完畢后被觸發,我們可以在這個階段使用去訪問元素。 頁面生命周期:DOMContentLoaded, load, beforeunload, unload 原文地址:http://javascript.info/onload.....

    luckyyulin 評論0 收藏0
  • 淺談DOMContentLoaded事件及其封裝方法

    摘要:事件雖然不支持,但它支持事件,該事件的目的是提供與文檔或元素的加載狀態有關的信息。事件可以用于檢測是否加載完畢,當時,表示加載完成。封裝事件以下,是封裝事件從而達到良好的兼容性的一個簡單的代碼實現。 我們在開發時,經常需要檢測頁面是否加載完畢,以確保腳本安全運行,下面我們就來淺談一下檢測頁面是否加載完畢的那些事件們。 1. onload 事件 在頁面的所有資源加載完成時,window對...

    waruqi 評論0 收藏0
  • 淺談DOMContentLoaded事件及其封裝方法

    摘要:事件雖然不支持,但它支持事件,該事件的目的是提供與文檔或元素的加載狀態有關的信息。事件可以用于檢測是否加載完畢,當時,表示加載完成。封裝事件以下,是封裝事件從而達到良好的兼容性的一個簡單的代碼實現。 我們在開發時,經常需要檢測頁面是否加載完畢,以確保腳本安全運行,下面我們就來淺談一下檢測頁面是否加載完畢的那些事件們。 1. onload 事件 在頁面的所有資源加載完成時,window對...

    leon 評論0 收藏0
  • 這么多前端優化點你都記得住嗎?

    摘要:不推薦移動端瀏覽器前端優化策略相對于桌面端瀏覽器,移動端瀏覽器上有一些較為明顯的特點設備屏幕較小新特性兼容性較好支持一些較新的和特性需要與應用交互等。 GitHub鏈接:https://github.com/zwwill/blo... 圍繞前端的性能多如牛毛,涉及到方方面面,以我我們將圍繞PC瀏覽器和移動端瀏覽器的優化策略進行羅列注意,是羅列不是展開,遇到不會不懂的點還請站外擴展 開車...

    ysl_unh 評論0 收藏0
  • 這么多前端優化點你都記得住嗎?

    摘要:不推薦移動端瀏覽器前端優化策略相對于桌面端瀏覽器,移動端瀏覽器上有一些較為明顯的特點設備屏幕較小新特性兼容性較好支持一些較新的和特性需要與應用交互等。 GitHub鏈接:https://github.com/zwwill/blo... 圍繞前端的性能多如牛毛,涉及到方方面面,以我我們將圍繞PC瀏覽器和移動端瀏覽器的優化策略進行羅列注意,是羅列不是展開,遇到不會不懂的點還請站外擴展 開車...

    Tecode 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<