這種方式下,文件加載是同步的。即calc1.js加載完成后,才加載calc2.js,所以保證了calc2.js總能正確地調(diào)用calc1里的add函數(shù)。在Chrome里的調(diào)試結(jié)果如下:
但同步加載的缺點也明顯,如果有多個文件的時候,全部加載時間會很長,而且阻塞用戶界面響應(yīng)。
通過Script Element異步加載異步加載的優(yōu)點是,能夠同時加載多個js文件,而且由于是異步,不會阻塞用戶界面,用戶體驗好。當(dāng)然缺點是,不能保證有依賴關(guān)系的文件的加載順序。
html 代碼
Title
在Chrome里的調(diào)試結(jié)果有時候能正確的輸出如下:
但有時候由于clac1.js沒有被先加載,calc2.js執(zhí)行時會報錯。
那么我們就得需要解決加載順序問題,保證calc1.js先加載。
Title
這樣就能永遠(yuǎn)輸出正確結(jié)果了。
通過 AJAX 加載JS文件也能正確的輸出結(jié)果。
如果是單一或少數(shù)js文件,可以在html body的最后插入script標(biāo)簽,以同步方式加載。Webpack其實也是把多個js文件合并稱一個,然后在body插入script引用。
如果是多個js文件,建議異步加載,以避免阻塞界面渲染,也縮短整體加載時間。本文介紹了script element和Ajax兩種方式,并且對于有依賴關(guān)系的文件加載順序,也做了實例。請參考 https://github.com/JackieGe/a...
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/87354.html
摘要:模塊化編程,已經(jīng)成為一個迫切的需求。隨著網(wǎng)站功能逐漸豐富,網(wǎng)頁中的也變得越來越復(fù)雜和臃腫,原有通過標(biāo)簽來導(dǎo)入一個個的文件這種方式已經(jīng)不能滿足現(xiàn)在互聯(lián)網(wǎng)開發(fā)模式,我們需要團(tuán)隊協(xié)作模塊復(fù)用單元測試等等一系列復(fù)雜的需求。 隨著網(wǎng)站逐漸變成互聯(lián)網(wǎng)應(yīng)用程序,嵌入網(wǎng)頁的Javascript代碼越來越龐大,越來越復(fù)雜。網(wǎng)頁越來越像桌面程序,需要一個團(tuán)隊分工協(xié)作、進(jìn)度管理、單元測試等等......開發(fā)...
摘要:單線程與瀏覽器多線程是單線程的因為運(yùn)行在瀏覽器中,是單線程的,每個一個線程。若以多線程的方式操作這些,則可能出現(xiàn)操作的沖突。零延遲零延遲并不是意味著回調(diào)函數(shù)立刻執(zhí)行。異步編程的中方法包括回調(diào)函數(shù)事件監(jiān)聽采用事件驅(qū)動模式。 JavaScript單線程與瀏覽器多線程 Javascript是單線程的:因為JS運(yùn)行在瀏覽器中,是單線程的,每個window一個JS線程。作為瀏覽器腳本語言,Ja...
摘要:異步加載異步加載指的是為指定加載的回調(diào)函數(shù),在的主體資源加載完畢之后,將自動調(diào)用該回調(diào)函數(shù)。 幾種加載js的方式 同步加載 異步加載 延遲加載 同步加載 用的最多的一種方式,又稱阻塞模式,會阻止瀏覽器的后續(xù)處理,停止后續(xù)的解析,只有當(dāng)當(dāng)前加載完成,才能進(jìn)行下一步操作。所以默認(rèn)同步執(zhí)行才是安全的。但這樣如果js中有輸出document內(nèi)容、修改dom、重定向等行為,就會造成頁面堵塞。...
閱讀 2301·2021-10-09 09:41
閱讀 1754·2019-08-30 15:53
閱讀 999·2019-08-30 15:52
閱讀 3451·2019-08-30 11:26
閱讀 778·2019-08-29 16:09
閱讀 3434·2019-08-29 13:25
閱讀 2269·2019-08-26 16:45
閱讀 1939·2019-08-26 11:51