JavaScript 非同步載入,時間線

2021-08-19 15:00:33 字數 1379 閱讀 2257

非同步載入

先了解下同步載入:

我們平時最常使用的就是這種同步載入形式:

同步模式,又稱阻塞模式,會阻止瀏覽器的後續處理,停止了後續的解析,因此停止了後續的檔案載入(如影象)、渲染、**執行。

js 之所以要同步執行,是因為 js 中可能有輸出 document 內容、修改dom、重定向等行為,所以預設同步執行才是安全的。

以前的一般建議是把內部js:

具體自己測試,部分方法沒用!!!

2.aysnc 非同步載入,載入完就執行,aysnc 只能載入外部指令碼,不能把 js 寫在 內部。

不相容 ie 9以下

3.dom中插入。

使用

script.onload = function ()
時間線

1.先建立乙個document物件,開始解析web頁面。這個階段的document.readystate = "loading" 。

2.遇到 link 外部 css,建立執行緒載入,並繼續解析文件。

3.遇到 script 外部 js ,並且沒有設定 async , defer,瀏覽器載入,並阻塞,等待js 載入完成並執行該指令碼,然後繼續解析文件。

4.遇到外部 js,並且有設定async,defer,瀏覽器建立執行緒載入,並繼續解析文件。

對於async屬性的指令碼,指令碼載入完成後立即執行。(非同步載入禁止使用document.write)

5.遇到 img 等,先正常解析dom 結構,然後瀏覽器非同步載入 src ,並繼續解析文件。

6.當文件解析完成, document.readystate = 'interactive'。

7.文件解析完成後,所有設定的defer的指令碼會按照順序執行。()

8.文件解析完成後,document物件觸發domcontentloaded事件(沒卵用)

9.當所有的指令碼載入完成並執行後,img等載入完成後,document.readystate = "complete",window物件觸發load 事件。

10.從此,以非同步響應方式處理使用者輸入,網路事件等。頁面按照你理解的順序執行。

Javascript 非同步載入詳解

一 同步載入與非同步載入的形式 1.同步載入 我們平時最常使用的就是這種同步載入形式 同步模式,又稱阻塞模式,會阻止瀏覽器的後續處理,停止了後續的解析,因此停止了後續的檔案載入 如影象 渲染 執行。js 之所以要同步執行,是因為 js 中可能有輸出 document 內容 修改dom 重定向等行為,...

同步載入 非同步載入 延遲載入

一 同步載入 平常預設用的都是同步載入。如 同步模式又稱阻塞模式,會阻止瀏覽器的後續處理,停止了後續的檔案的解析,執行,如影象的渲染。流覽器之所以會採用同步模式,是因為載入的js檔案中有對dom的操作,重定向,輸出document等預設行為,所以同步才是最安全的。通常會把要載入的js放到body結束...

JavaScript動態載入

在做專案的過程中需要用到動態載入,如何做,剛開始很為難。什麼是動態載入呢?比如說,新增便簽時,在往庫里插入資料的同時需要顯示在介面上,新增資料後重新整理頁面是可以獲得,但是沒插入一條資料都要重新整理介面的話,不僅麻煩,還很慢。所以就需要用到動態載入。經過不懈努力,其實,也就是動態拼接字串而已。再新增...