国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開(kāi)發(fā) > AJAX > 正文

使用jQuery中的when實(shí)現(xiàn)多個(gè)AJAX請(qǐng)求對(duì)應(yīng)單個(gè)回調(diào)的例子分享

2024-09-01 08:32:41
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
我在為 Mozilla Developer Network(Mozilla開(kāi)發(fā)者社區(qū)) 寫(xiě)代碼時(shí)需要加載的一個(gè)普通的的腳本文件,以及一個(gè)JSON流。 因?yàn)槲覀兪褂胘Query,這意味著需要調(diào)用 jQuery.getScript 和 jQuery.getJSON 函數(shù)

 我知道這些函數(shù)都是異步執(zhí)行(asyncronously)并且會(huì)延遲一段時(shí)間返回,所以我想知道是否有一種方式,使我可以使用單個(gè)回調(diào),并行地加載它們,就像JS加載器 curljs 所做的那樣。 很幸運(yùn)! 通過(guò)jQuery.when, 我可以并發(fā)地加載兩個(gè)請(qǐng)求,只執(zhí)行一次回調(diào)!

jQuery 腳本
正如我提到的,下面是加載腳本和一個(gè)JSON資源的用例:

復(fù)制代碼 代碼如下:


$.when(
 $.getScript('/media/js/wiki-min.js?build=21eb633'),
 $.getJSON('https://developer.mozilla.org/en-US/demos/feeds/json/featured/')
).then(function(a, b) {  // 或者也可以使用 ".done"
 // Yay, 加載完成,此處我們可以執(zhí)行一些依賴操作。。。
});

當(dāng)資源加載完成, 指定的 done 或者 then 回調(diào)會(huì)觸發(fā),因此可以知道請(qǐng)求已經(jīng)完成。 每個(gè)請(qǐng)求返回的回調(diào)參數(shù)對(duì)象類型不同,因此上述請(qǐng)求可能返回如下信息:

復(fù)制代碼 代碼如下:


// 格式: [response, state, jqxhr], [response, state, jqxhr]
["(function(c){var e=c(".from-search-navigate");if(e…;if(j){g.apply(m,l)}}}})(window,document,jQuery);", "success", Object]
[Array[15], "success", Object]

如果還需要增加一個(gè)傳統(tǒng)的AJAX XHR請(qǐng)求,比如說(shuō)一個(gè)小部件模板,我們可以這樣做:

復(fù)制代碼 代碼如下:


$.when(
 $.getScript('/media/js/wiki-min.js?build=21eb633'),
 $.getJSON('https://developer.mozilla.org/en-US/demos/feeds/json/featured/'),
 $.get('http://www.survivalescaperooms.com/')
).then(function(a, b, c) {
 console.log(a, b, c);
});

Dojo Toolkit很早就有此類功能了,但jQuery也可以這么做我還是相當(dāng)振奮的。 對(duì)于現(xiàn)在的開(kāi)發(fā),多個(gè)不同步且返回先后順序也不確定的請(qǐng)求共享同一個(gè)回調(diào)是很自然的需求,所以jQuery絕對(duì)是與時(shí)俱進(jìn)的!

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 广灵县| 将乐县| 晋中市| 华蓥市| 阿坝| 定襄县| 西乡县| 曲松县| 镇坪县| 新郑市| 吴川市| 永胜县| 铅山县| 垣曲县| 宜川县| 新邵县| 安康市| 溧阳市| 万源市| 渭源县| 乌鲁木齐市| 武功县| 杨浦区| 沅陵县| 小金县| 宁化县| 西城区| 肃宁县| 疏勒县| 疏附县| 鄂伦春自治旗| 夏邑县| 临沧市| 新丰县| 台州市| 洛南县| 乌拉特中旗| 红河县| 蕲春县| 沙洋县| 临沂市|