非同步載入
先了解下同步載入:
我們平時最常使用的就是這種同步載入形式:
同步模式,又稱阻塞模式,會阻止瀏覽器的後續處理,停止了後續的解析,因此停止了後續的檔案載入(如影象)、渲染、**執行。
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動態載入
在做專案的過程中需要用到動態載入,如何做,剛開始很為難。什麼是動態載入呢?比如說,新增便簽時,在往庫里插入資料的同時需要顯示在介面上,新增資料後重新整理頁面是可以獲得,但是沒插入一條資料都要重新整理介面的話,不僅麻煩,還很慢。所以就需要用到動態載入。經過不懈努力,其實,也就是動態拼接字串而已。再新增...