亚洲国产日韩欧美在线a乱码,国产精品路线1路线2路线,亚洲视频一区,精品国产自,www狠狠,国产情侣激情在线视频免费看,亚洲成年网站在线观看

Javascript加載方法

時間:2020-11-11 15:56:45 JavaScript 我要投稿

Javascript加載方法

  Javascript文件動態(tài)加載一直是比較困擾的一件事情,像網(wǎng)絡上傳的比較常見的做法:

  function loadjs(fileurl){ var sct = document.createElement("script"); sct.src = fileurl; document.head.appendChild(sct);}

  然后我們來測試一下結(jié)果:

  function loadjs(fileurl){ var sct = document.createElement("script"); sct.src = fileurl; document.head.appendChild(sct); } loadjs("http://code.jquery.com/jquery-1.12.0.js"); loadjs("http://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js") loadjs("http://bootboxjs.com/bootbox.js")

  代碼加載完后,會出現(xiàn)下圖的錯誤:

  jquery明明是加載在第一個處理,為什么還是報jQuery不存在的`對象呢?

  因為這樣加載,相當于開啟了三個線程,只是jquery這個文件先啟動線程,而jquery執(zhí)行完這個線程的時間,超過了后面兩個時間. 因此后面執(zhí)行完的,可能沒能找到jquery這個對象。

  然這種方式怎么處理呢?

  其實文件的加載是有個狀態(tài)處理的.文件的加載有個onload事件,就是可以監(jiān)聽文件是否加載完成的事件.

  因此我們可以考慮這個方法來處理我們想要的結(jié)果.我們用直觀的方式來處理.改進后的代碼如下:

  function loadjs(fileurl, fn){ var sct = document.createElement("script"); sct.src = fileurl; if(fn){ sct.onload = fn; } document.head.appendChild(sct); } loadjs("http://code.jquery.com/jquery-1.12.0.js",function(){ loadjs("http://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js",function(){ loadjs("http://bootboxjs.com/bootbox.js") }) });

  OK,執(zhí)行完這個代碼之后,加載文件都是在前一個加載完成后,才會加載另外一個,這樣就不會造成找不到用到的對象了.

  然后我們來執(zhí)行一個彈出框的效果,代碼里面使用了 Bootbox.js 插件. 加載代碼如下:

  loadjs("http://code.jquery.com/jquery-1.12.0.js",function(){ loadjs("http://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js",function(){ loadjs("http://bootboxjs.com/bootbox.js",function(){ bootbox.alert("Hello world!", function() { Example.show("Hello world callback"); }); }) }) });

  刷新頁面,就會直接顯示彈出框:

  動態(tài)加載的代碼,往往容易在這里花費很多時間調(diào)試.大家最好的辦法就是寫一個最簡單的例子,理解其中的原因. 這里的代碼都可以進行封裝,還可以加入CSS文件的加載.作為自己的插件使用。

【Javascript加載方法】相關(guān)文章:

1.javascript寫的異步加載js文件函數(shù)

2.javascript的方法

3.javascript編程技巧方法

4.JavaScript toFixed方法介紹

5.JavaScript常用方法匯總

6.學習javascript的最佳方法

7.javascript數(shù)組使用調(diào)用方法

8.Javascript拓展String方法代碼