亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

同步異步動態引入js文件的幾種方法總結

2019-11-20 08:54:14
字體:
來源:轉載
供稿:網友

動態加載js文件

有時候我們需要根據參數不同來引入不同的js文件,用html直接寫標簽滿足不了我們的需求,總結幾種方法,以及同步異步加載的各種需求

一.直接加載

<div id="divId"></div><script>

二.異步加載,并發執行,但引入js內容不能直接使用

//1.1 直接document.write document.write("<script src='test.js'><//script>"); //1.2 動態改變已有script的src屬性 //頁面中有<script src='' id="s1"></ script> document.getElementById('s1').src="test.js"; //1.3 動態創建js var rootObject=document.getElementById("divId"); var oScript = document.createElement( "script" ); oScript.type = "text/javascript";  oScript.src = test.js; //test.js方法中有一個方法function test(){alert("test");} rootObject.appendChild(oScript);  //2.0 調用js test();//在ie中不會出錯,在firefox會出錯,因為firefox默認為異步加載(在向服務器請求加載test.js文件的同時,繼續向下執行了,調用test()方法,就自然找不到這個方法)

三.同步加載,單步加載,引入js內容可以直接使用

var Skip={};//獲取XMLHttpRequest對象(提供客戶端同http服務器通訊的協議)Skip.getXmlHttpRequest=function (){  if ( window.XMLHttpRequest ) // 除了IE外的其它瀏覽器 return new XMLHttpRequest() ;  else if ( window.ActiveXObject ) // IE return new ActiveXObject("MsXml2.XmlHttp") ; },//導入內容Skip.includeJsText =function (rootObject,jsText){  if ( rootObject != null ){  var oScript = document.createElement( "script" ); oScript.type = "text/javascript"; //oScript.id = sId; //oScript.src = fileUrl; //oScript.defer = true; oScript.text = jsText; rootObject.appendChild(oScript); //alert(oScript.text); }  },//導入文件Skip.includeJsSrc =function (rootObject, fileUrl){  if ( rootObject != null ){  var oScript = document.createElement( "script" );  oScript.type = "text/javascript";  oScript.src = fileUrl;  rootObject.appendChild(oScript);  } },//同步加載Skip.addJs=function(rootObject, url){  var oXmlHttp = Skip.getXmlHttpRequest() ;  oXmlHttp.onreadystatechange = function(){//其實當在第二次調用導入js時,因為在瀏覽器當中存在這個*.js文件了,它就不在訪問服務器,也就不在執行這個方法了,這個方法也只有設置成異步時才用到if ( oXmlHttp.readyState == 4 ){ //當執行完成以后(返回了響應)所要執行的 if ( oXmlHttp.status == 200 || oXmlHttp.status == 304 ){ //200有讀取對應的url文件,404表示不存在這個文件 Skip.includeJsSrc( rootObject, url);  } else{  alert( 'XML request error: ' + oXmlHttp.statusText + ' (' + oXmlHttp.status + ')' ) ;  } } } //1.True 表示腳本會在 send() 方法之后繼續執行,而不等待來自服務器的響應,并且在open()方法當中有調用到onreadystatechange()這個方法。通過把該參數設置為 "false",可以省去額外的 onreadystatechange 代碼,它表示服務器返回響應后才執行send()后面的方法.//2.同步執行oXmlHttp.send()方法后oXmlHttp.responseText有返回對應的內容,而異步還是為空,只有在oXmlHttp.readyState == 4時才有內容,反正同步的在oXmlHttp.send()后的操作就相當于oXmlHttp.readyState == 4下的操作,它相當于只有了這一種狀態.oXmlHttp.open('GET', url, false); //url為js文件時,ie會自動生成 '<script src="*.js" type="text/javascript"> </scr ipt>',ff不會 oXmlHttp.send(null); Skip.includeJsText(rootObject,oXmlHttp.responseText);}};var rootObject=document.getElementById("divId");Skip.addJs(rootObject,"test.js")//test.js文件中含有funciotn test(){alert("test");}test();//即使馬上調用也不會出錯了.</script>

總結:

1. ie動態加載js文件時,它默認就為同步,可以不用設置同步(也可直調用Skip.includeJsSrc())

2. ff動態加載js文件時,它默認為異步,要設置成同步,加載完直接調用才不會出錯

3. 無論ie還是ff在動態加載js內容時,沒有請求服務器,不會存在異步問題

注:無論ie還是ff在頁面加載js時(即執行整個頁面),都是為同步的加載,除非設置script的屬性defer="true"(此屬性好像也只是對ie有效)

以上就是小編為大家帶來的同步異步動態引入js文件的幾種方法總結的全部內容了,希望對大家有所幫助,多多支持武林網~

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久久久网址| 亚洲精品电影网站| 欧美影院成年免费版| 精品久久久久久中文字幕一区奶水| 午夜精品美女自拍福到在线| 日本精品久久久久影院| 亚洲区中文字幕| 日韩高清欧美高清| 日韩一区二区三区国产| 欧美成人自拍视频| 久久综合免费视频| 97久久精品人搡人人玩| 亚洲国产精品yw在线观看| 日韩av网址在线| 精品成人国产在线观看男人呻吟| 久久人人爽人人爽爽久久| 精品动漫一区二区| 久久99国产精品久久久久久久久| 国产精品欧美日韩一区二区| 黑人与娇小精品av专区| 久久韩国免费视频| 日韩av在线电影网| 日韩美女在线观看一区| 中文欧美在线视频| 91精品国产九九九久久久亚洲| 欧美精品久久一区二区| 国产精品老女人视频| 国产精品久久激情| 色99之美女主播在线视频| 国产精品久久久91| 亚洲电影天堂av| 亚洲毛片在线免费观看| 国产在线日韩在线| 欧美日韩亚洲一区二| 亲子乱一区二区三区电影| 欧美一乱一性一交一视频| 中文字幕欧美在线| 亚洲日本aⅴ片在线观看香蕉| 欧美裸体视频网站| 欧美成aaa人片在线观看蜜臀| 国产精品色悠悠| 国产精品自产拍在线观| 91超碰caoporn97人人| 午夜精品久久17c| 亚洲电影天堂av| 久久久99久久精品女同性| 69视频在线免费观看| 中文字幕av日韩| 日韩一区二区三区在线播放| 成人精品视频99在线观看免费| 欧美激情三级免费| 91国内揄拍国内精品对白| 亚洲精品日韩激情在线电影| 一级做a爰片久久毛片美女图片| 国产噜噜噜噜噜久久久久久久久| 亚洲欧美日韩天堂| 毛片精品免费在线观看| 欧美日韩美女视频| 久久亚洲影音av资源网| 亚洲午夜未满十八勿入免费观看全集| 欧美日韩一区二区三区| 一本色道久久综合亚洲精品小说| 久国内精品在线| 国产成人精品视频在线| 欧美国产日韩中文字幕在线| 国产成人综合一区二区三区| 日韩欧美在线观看视频| 中文字幕在线观看亚洲| 国产日本欧美一区二区三区| 青青久久av北条麻妃海外网| 91精品视频专区| 国产精品一久久香蕉国产线看观看| 亚洲精品久久久久久久久久久| 97不卡在线视频| 久久91亚洲精品中文字幕奶水| 精品中文字幕在线观看| 国产999精品久久久| 热99精品只有里视频精品| 久久精品在线视频| 黑人极品videos精品欧美裸| 国产精品永久免费| 51ⅴ精品国产91久久久久久| 久久免费视频网站| 欧美乱大交做爰xxxⅹ性3| 欧美亚洲在线观看| 91av成人在线| 97精品视频在线| 国产女精品视频网站免费| 精品久久久一区二区| 韩国欧美亚洲国产| 日韩激情视频在线播放| 午夜精品福利视频| 92国产精品久久久久首页| 日韩人在线观看| 国产亚洲欧洲在线| 欧美做爰性生交视频| 国产日韩av高清| 欧美日韩人人澡狠狠躁视频| 亚洲专区国产精品| 日本精品久久久久影院| 97精品免费视频| 亚洲人高潮女人毛茸茸| 亚洲精选在线观看| 国产91热爆ts人妖在线| 国产区精品视频| 国产精品视频永久免费播放| 国产精品无码专区在线观看| 国产在线拍揄自揄视频不卡99| 色综合91久久精品中文字幕| 亚洲男女自偷自拍图片另类| 成人福利视频网| 91精品国产91久久久久久久久| 国产啪精品视频网站| 欧美又大又粗又长| 国产欧美亚洲精品| 九九热精品视频在线播放| 一本一本久久a久久精品综合小说| 国产区亚洲区欧美区| 亚洲国产精品va在线看黑人| 韩剧1988免费观看全集| 久久亚洲精品一区二区| 午夜精品一区二区三区在线播放| 日韩精品黄色网| 成人女保姆的销魂服务| 91久久精品国产91久久| 精品久久中文字幕久久av| 国模精品系列视频| 欧美日韩亚洲视频一区| 黑人巨大精品欧美一区二区一视频| 日韩在线小视频| 日韩精品视频观看| 国产91色在线| 91爱视频在线| 国产精品视频自拍| 久久影视电视剧免费网站清宫辞电视| 日韩专区中文字幕| 91国产精品电影| 日韩av在线网页| 亚洲欧美日韩第一区| 色偷偷av亚洲男人的天堂| 91在线免费观看网站| 日韩激情av在线播放| 日韩欧美有码在线| 最近的2019中文字幕免费一页| 欧美xxxwww| 欧美黄网免费在线观看| 欧美激情亚洲一区| 亚洲欧洲日产国码av系列天堂| 国产精品一二三在线| 成人有码在线播放| 国产区精品视频| 欧美亚洲第一页| 欧美xxxwww| 国内外成人免费激情在线视频| 九九视频这里只有精品| 成人a在线视频| 最近中文字幕日韩精品| 日本久久久久久久久久久| 国产在线拍揄自揄视频不卡99| 亚洲3p在线观看| 91在线直播亚洲| 亚洲人成电影网站色…| 97碰在线观看| 国产精品美女www|