一次ajax多次回调结果,使用jQuery中的when实现多个AJAX请求对应单个回调的例子分享...

该博客介绍了如何利用jQuery的$.when方法并发加载多个异步请求,包括加载脚本和JSON资源,并在所有请求完成后执行单一回调。示例中展示了$.getScript和$.getJSON的使用,以及如何添加传统AJAX请求。jQuery的这种功能使得开发者可以更方便地处理多个不确定顺序的异步请求。
摘要由CSDN通过智能技术生成

我知道这些函数都是异步执行(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绝对是与时俱进的!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值