日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

异步加载js文件的方法总结

發布時間:2025/6/15 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 异步加载js文件的方法总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

方法一,jQuery.getScript

HTML 代碼:

代碼如下 復制代碼
<button id="go">Run</button>
<div class="block"></div>

jQuery 代碼:

jQuery.getScript("http://dev.jquery.com/view/trunk/plugins/color/jquery.color.js",
function(){
$("#go").click(function(){
$(".block").animate( { backgroundColor: 'pink' }, 1000)
.animate( { backgroundColor: 'blue' }, 1000);
});
});

方法三

?

代碼如下 復制代碼
同步加載,單步加載,引入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 ){ // www.111cn.net 當執行完成以后(返回了響應)所要執行的
if ( oXmlHttp.status == 200 || oXmlHttp.status == 304 ){ //200有讀取對應的url文件,404表示不存在這個文件
Skip.includeJsSrc( rootObject, url);
} else{
alert( 'XML(www.111cn.net) 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>

方法三,自己用的加載js文件,支持多文件,不兼容ie

代碼如下 復制代碼

/**
* 加載js文件
* @param {string || array} url js路徑
* @param {Function} fn 加載完成后回調
* @return {object} game對象
* @example
* getScript("url.js",fn)
* getScript(["url-1.js","url-2.js"],fn)
*/
game.getScript = (function() {
var cache = {};//內部緩存下url,下次則不請求
return function(url, fn) {
if ("string" === typeof(url)) {
url = [url]; //如果不是數組帶個套
};
var i = 0,//循環起
ok = 0,//加載成功幾個js
len = url.length,//一共幾個js
head = document.getElementsByTagName("head")[0],
js, _url,
create = function(url) {//創建js
js = document.createElement("script");
js.type = "text/javascript";
js.src = url;
head.appendChild(js);
return js;
};
for (; i < len;) {
if (cache[encodeURIComponent((_url = url[i++]))]) {//如果加載過
(++ok >= len && fn) && fn();//如果加載完所有的js則執行回調
continue;
}
cache[encodeURIComponent(_url)] = !0;//設置緩存
js = create(_url);//創建js
fn && (js.onload = function() {
if (++ok >= len) {//如果加載完所有的js則執行回調
fn();
}
});
};
head = js = _url = create = null;
return this;
}
})();

from:http://www.111cn.net/wy/js-ajax/58715.htm

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的异步加载js文件的方法总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 免费69视频 | av一区不卡 | 精品人妻码一区二区三区红楼视频 | 天堂资源最新在线 | 天天狠天天插天天透 | 日本黄色小视频 | 国产精品久久久久久久免费观看 | 欧美激情黑人 | 不卡av在线| 久久精品无码专区 | 激情欧美一区二区 | 99福利影院 | 天天综合网在线观看 | 尤物在线免费观看 | 日日碰狠狠躁久久躁蜜桃 | va在线播放| 久久97久久97精品免视看 | 四虎影城库 | 综合久久色 | 日韩综合在线观看 | 亚洲精品成 | 亚洲一区二区日韩 | 欧美女人一区二区 | 色图综合 | 成人精品av| 国产真人真事毛片 | 大奶子在线| 老熟女高潮喷水了 | 激情国产在线 | 婷婷激情在线 | 日韩激情视频在线 | 伊人久操视频 | 欧美资源在线观看 | а天堂中文在线官网 | 182tv福利视频 | 国产麻豆精品在线观看 | 亚洲手机视频 | 一区二区视频在线播放 | 天天视频黄色 | 在线免费观看一区二区 | 国产精品色视频 | 日韩精品免费一区二区三区 | 久久久久久久偷拍 | 欧美一级一级 | 一区二区三区波多野结衣 | 护士人妻hd中文字幕 | 翔田千里一区二区三区av | 91av在线视频播放 | 天天狠天天透 | 国产精品免 | 成人免费xxxxx在线观看 | 午夜爱爱免费视频 | 亚洲欧美伦理 | 日日干天天操 | 亚洲青涩 | 熟女自拍一区 | 国产成人精品久久久 | 黄色的网站在线 | 91精品国自产在线 | 凹凸视频一区二区 | 蜜臀av性久久久久蜜臀aⅴ | 亚洲第一精品网站 | 九九视频在线观看 | 高h喷水荡肉少妇爽多p视频 | 夜夜操导航 | 极品销魂美女一区二区 | 午夜电影网一区 | 黄色av导航 | 天天躁日日躁狠狠躁免费麻豆 | 韩国黄色精品 | 亚洲第8页 | 超碰在线一区 | 亚洲综合图色40p | xfplay5566色资源网站 | 亚洲人成电影在线播放 | zzji欧美大片| 97精品一区二区三区 | 麻豆免费视频 | 久热精品免费视频 | 中文免费视频 | 欧美成一区二区三区 | 波多野结衣在线免费观看视频 | 日本大乳奶做爰 | 亚洲日本国产精品 | 天堂资源在线观看 | 欧美黑人三级 | 成人小网站 | 97久久超碰| 91麻豆国产视频 | 91精品人妻一区二区三区蜜桃欧美 | 国产一级视频在线 | 五月天综合激情网 | 精品一区二区三区不卡 | 三上悠亚一区二区 | 亚洲国产成人91porn | 久久韩国 | 亚洲av无码国产在丝袜线观看 | 亚洲精品99999 | 久久国产这里只有精品 |