javascript - webpack異步加載js問題
問題描述
我導(dǎo)入了兩個(gè)js,其中第一個(gè)是提取出來的公用js,第二個(gè)是頁面js并且依賴第一個(gè)js。我想讓兩個(gè)js非阻塞加載,但又能正常的處理依賴,也就是,一和二同時(shí)加載,但二只有在一加載完成的基礎(chǔ)上才執(zhí)行。該怎么搞
問題解答
回答1:這是我我把js放到head中,這是界面解析順序,這是阻塞,jquery放在head中,把parseHtml分割了。在body底部已經(jīng)沒必要了,因?yàn)樽罱K耗時(shí)的是執(zhí)行script的時(shí)間
回答2:現(xiàn)代瀏覽器,一般默認(rèn)就是這個(gè)處理機(jī)制。js并行下載,從上到下,下載完立馬執(zhí)行,其中,就算下面的先下載完成,其也必須等其上面的js下載執(zhí)行完,其才能執(zhí)行。http://www.cnblogs.com/cococe...
回答3:require.ensure應(yīng)該是能夠滿足你的需求的。
require.ensure(dependencies, callback, chunkName)
具體可以見:webpack 按需打包加載
回答4:require.ensure不適合你的要求,因?yàn)槟闶且瑫r(shí)加載,我看了下require.ensure生成后的文件,它的原理是通過promise+jsonp的方式,阻塞式加載js,可以實(shí)現(xiàn)按需,但不是并行。對(duì)于js本身browser會(huì)并行請(qǐng)求,只不過數(shù)量有限制。
相關(guān)文章:
1. javascript - 原生canvas中如何獲取到觸摸事件的canvas內(nèi)坐標(biāo)?2. docker gitlab 如何git clone?3. css3 - border-bottom 的長度可否超過盒子的寬度呢?實(shí)現(xiàn)如下圖效果。(我的書下面的線)4. 我在centos容器里安裝docker,也就是在容器里安裝容器,報(bào)錯(cuò)了?5. java - spring boot @Autowired6. JavaScript事件7. mysql scripts提示 /usr/bin/perl: bad interpreter8. android - 用textview顯示html時(shí)如何寫imagegetter獲取網(wǎng)絡(luò)圖片9. mysql優(yōu)化 - mysql EXPLAIN之后怎么看結(jié)果進(jìn)行優(yōu)化 ?10. css3 - css怎么實(shí)現(xiàn)圖片環(huán)繞的效果
