麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > JavaScript > 正文

JS 動態加載js文件和css文件 同步/異步的兩種簡單方式

2019-11-20 08:54:14
字體:
來源:轉載
供稿:網友
/*動態添加js或css,URL:文件路徑,FileType:文件類型(js/css)*/function AddJsFiles(URL,FileType){  var oHead = document.getElementsByTagName('HEAD').item(0);  var addheadfile;  if(FileType=="js"){    addheadfile= document.createElement("script");    addheadfile.type = "text/javascript";    addheadfile.src=URL;  }else{    addheadfile= document.createElement("link");    addheadfile.type = "text/css";    addheadfile.rel="stylesheet";    addheadfile.rev = "stylesheet";    addheadfile.media = "screen";    addheadfile.href=URL;  }  oHead.appendChild( addheadfile);}
/*方法調用*/AddJsFiles("js/index.js","js");AddJsFiles("css/index.css","css");

經測試發現以上方法進行文件加載時,文件是異步加載的,這樣就可能導致加載文件后立即使用文件中的方法或變量會產生錯誤的情況,

所以以下采用同步加載的方法,當文件加載完成后再去執行相應的代碼或方法

/*5.加載文件*//* 已加載文件緩存列表,用于判斷文件是否已加載過,若已加載則不再次加載*/var classcodes =[];window.Import={  /*加載一批文件,_files:文件路徑數組,可包括js,css,less文件,succes:加載成功回調函數*/  LoadFileList:function(_files,succes){    var FileArray=[];    if(typeof _files==="object"){      FileArray=_files;    }else{      /*如果文件列表是字符串,則用,切分成數組*/      if(typeof _files==="string"){        FileArray=_files.split(",");      }    }    if(FileArray!=null && FileArray.length>0){      var LoadedCount=0;      for(var i=0;i< FileArray.length;i++){        loadFile(FileArray[i],function(){          LoadedCount++;          if(LoadedCount==FileArray.length){            succes();          }        })      }    }    /*加載JS文件,url:文件路徑,success:加載成功回調函數*/    function loadFile(url, success) {      if (!FileIsExt(classcodes,url)) {        var ThisType=GetFileType(url);        var fileObj=null;        if(ThisType==".js"){          fileObj=document.createElement('script');          fileObj.src = url;        }else if(ThisType==".css"){          fileObj=document.createElement('link');          fileObj.href = url;          fileObj.type = "text/css";          fileObj.rel="stylesheet";        }else if(ThisType==".less"){          fileObj=document.createElement('link');          fileObj.href = url;          fileObj.type = "text/css";          fileObj.rel="stylesheet/less";        }        success = success || function(){};        fileObj.onload = fileObj.onreadystatechange = function() {          if (!this.readyState || 'loaded' === this.readyState || 'complete' === this.readyState) {            success();            classcodes.push(url)          }        }        document.getElementsByTagName('head')[0].appendChild(fileObj);      }else{        success();      }    }    /*獲取文件類型,后綴名,小寫*/    function GetFileType(url){      if(url!=null && url.length>0){        return url.substr(url.lastIndexOf(".")).toLowerCase();      }      return "";    }    /*文件是否已加載*/    function FileIsExt(FileArray,_url){      if(FileArray!=null && FileArray.length>0){        var len =FileArray.length;        for (var i = 0; i < len; i++) {          if (FileArray[i] ==_url) {            return true;          }        }      }      return false;    }  }}var FilesArray=["js/index.js","js/ClassInherit1.js","js/highcharts_2.21.js","css/index.css"];Import.LoadFileList(FilesArray,function(){  /*這里寫加載完成后需要執行的代碼或方法*/});

以上就是小編為大家帶來的JS 動態加載js文件和css文件 同步/異步的兩種簡單方式的全部內容了,希望對大家有所幫助,多多支持武林網~

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: free国产hd老熟bbw | 在线观看免费污视频 | 一道本不卡一区 | 国产精品一区二区x88av | 欧美精品一区二区中文字幕 | 91精品国产综合久久婷婷香 | 久久久久久久久久性 | 国产美女视频黄a视频免费 日韩黄色在线播放 | sese在线视频 | 国产成年人在线观看 | 精品久久9999 | 369看片你懂的小视频在线观看 | 国产精品免费一区二区 | 永久久久 | 一级做a爱片久久毛片a高清 | 美国av免费看| 欧美成人精品h版在线观看 久久久久久三区 | 久久久久九九九女人毛片 | 国产成人羞羞视频在线 | 久久亚洲一区二区三区成人国产 | 欧美精品日日鲁夜夜添 | 宅男噜噜噜66国产免费观看 | 青久草视频 | 国产精品一区二区三区99 | 男女一边摸一边做羞羞视频免费 | 国产精品成人久久 | 亚洲成人精品国产 | 欧美性久久久 | 精品久久久久久久久久久久 | 91在线视频在线观看 | 欧美一级毛片免费观看视频 | 中文字幕精品一二三四五六七八 | 亚洲最新色 | 成人毛片视频在线观看 | 欧美色另类| 九九热国产在线 | 91在线视频精品 | av在线免费播放网站 | 久久久综合久久久 | 手机av免费电影 | 海外中文字幕在线观看 |