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

首頁 > 編程 > JavaScript > 正文

使用jQuery中的when實現多個AJAX請求對應單個回調的例子分享

2019-11-20 20:47:56
字體:
來源:轉載
供稿:網友

 我知道這些函數都是異步執行(asyncronously)并且會延遲一段時間返回,所以我想知道是否有一種方式,使我可以使用單個回調,并行地加載它們,就像JS加載器 curljs 所做的那樣。 很幸運! 通過jQuery.when, 我可以并發地加載兩個請求,只執行一次回調!

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

復制代碼 代碼如下:

$.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, 加載完成,此處我們可以執行一些依賴操作。。。
});

當資源加載完成, 指定的 done 或者 then 回調會觸發,因此可以知道請求已經完成。 每個請求返回的回調參數對象類型不同,因此上述請求可能返回如下信息:

復制代碼 代碼如下:

// 格式: [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]

如果還需要增加一個傳統的AJAX XHR請求,比如說一個小部件模板,我們可以這樣做:

復制代碼 代碼如下:

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

Dojo Toolkit很早就有此類功能了,但jQuery也可以這么做我還是相當振奮的。 對于現在的開發,多個不同步且返回先后順序也不確定的請求共享同一個回調是很自然的需求,所以jQuery絕對是與時俱進的!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 商南县| 吉隆县| 新乡市| 崇义县| 泰宁县| 本溪市| 祁东县| 武宁县| 砚山县| 司法| 建平县| 内江市| 图片| 融水| 察隅县| 宜州市| 如皋市| 长宁区| 新民市| 疏附县| 景德镇市| 湘乡市| 兴海县| 呼和浩特市| 巩留县| 马鞍山市| 甘洛县| 湖北省| 三亚市| 六枝特区| 电白县| 邹城市| 防城港市| 扶余县| 墨竹工卡县| 乌兰浩特市| 南京市| 达拉特旗| 邻水| 含山县| 永嘉县|