<dfn id="w48us"></dfn><ul id="w48us"></ul>
  • <ul id="w48us"></ul>
  • <del id="w48us"></del>
    <ul id="w48us"></ul>
  • Javascript加載方法

    時(shí)間:2024-07-11 10:22:01 JavaScript 我要投稿
    • 相關(guān)推薦

    Javascript加載方法

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

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

      然后我們來測(cè)試一下結(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")

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

      jquery明明是加載在第一個(gè)處理,為什么還是報(bào)jQuery不存在的對(duì)象呢?

      因?yàn)檫@樣加載,相當(dāng)于開啟了三個(gè)線程,只是jquery這個(gè)文件先啟動(dòng)線程,而jquery執(zhí)行完這個(gè)線程的時(shí)間,超過了后面兩個(gè)時(shí)間. 因此后面執(zhí)行完的,可能沒能找到j(luò)query這個(gè)對(duì)象。

      然這種方式怎么處理呢?

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

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

      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í)行完這個(gè)代碼之后,加載文件都是在前一個(gè)加載完成后,才會(huì)加載另外一個(gè),這樣就不會(huì)造成找不到用到的對(duì)象了.

      然后我們來執(zhí)行一個(gè)彈出框的效果,代碼里面使用了 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"); }); }) }) });

      刷新頁面,就會(huì)直接顯示彈出框:

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

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

    JavaScript常用方法匯總10-25

    JavaScript數(shù)組常用方法介紹09-04

    javascript跨域訪問的方法07-09

    javascript編程異常處理的方法08-04

    JavaScript fontcolor方法入門實(shí)例07-07

    使用ajax操作JavaScript對(duì)象的方法09-28

    詳解JavaScript中的splice()使用方法08-20

    關(guān)于javascript尋找錯(cuò)誤方法整理05-23

    最常用的20個(gè)javascript方法函數(shù)09-10

    Javascript中arguments對(duì)象的詳解和使用方法08-20

    主站蜘蛛池模板: 国产精品高清2021在线 | 国产伦精品一区二区三区女| 无码日韩人妻精品久久蜜桃| 亚洲精品欧美精品日韩精品| 最新在线精品国自av| 人人妻人人澡人人爽精品日本| 国产精品人人爽人人做我的可爱 | 精品无码AV无码免费专区| 国产在线精品无码二区| 亚洲精品天天影视综合网 | 精品成人一区二区三区四区| 日本精品一区二区三区在线视频一| 无码人妻丰满熟妇精品区| 九九热这里只有在线精品视| 国产亚洲精品激情都市| 欧美精品欧美人与动人物牲交| 久久精品视频免费| 久久亚洲国产精品一区二区| 欧美国产日韩精品| 国产精品夜色视频一级区 | 四虎国产精品免费入口| 无码人妻精品一区二区三区在线| 久久久久成人精品无码| 国产成人1024精品免费| 久久精品国产99国产电影网| 99在线精品免费视频九九视| 久久久久国产精品熟女影院| 日韩精品无码AV成人观看| 国产精品免费αv视频| 国产原创精品视频| 精品国产午夜理论片不卡| 中文字幕一区二区三区日韩精品| 国产一区二区三区精品视频| 国产精品久久久久久久久鸭| 尤物TV国产精品看片在线| 久久精品中文字幕有码| 国产精品青草久久久久福利99 | 98精品国产自产在线XXXX| 99在线精品视频| 国产精品亚韩精品无码a在线| 一级做a爰黑人又硬又粗免费看51社区国产精品视 |