美文网首页
使用jQuery时,需要合并未知数量个ajax请求方法

使用jQuery时,需要合并未知数量个ajax请求方法

作者: 子夜魂 | 来源:发表于2016-11-10 17:35 被阅读0次

一、已知数量的ajax请求时
当ajax请求的数量固定且已知时,可以直接使用jQuery的$.when().then()方法:

$.when(ajax1,ajax2,ajax3,...).then(successFunc(){},failFunc(){});

示例:

$.when($.ajax(options), $.ajax({options})).done(function (data1, data2) {
    //doSomething
});

二、当未知数量的ajax请求时
第一种情况的解决办法很简单,但是有时候可能会遇到一些特殊的情况,比如某些时候想把这些请求的过程提取出来写作一个通用的方法,此时请求的数量就变得不确定了,这种时候,$.when()中的参数就变得没有办法填了,而$.when()又不支持直接接受ajax数组作为参数(这是因为$.when方法的参数需要的是promise对象,而不是array对象),因此我们需要使用apply()方法来将存有不确定数量的ajax请求对象的数组传入$.when()方法中。
示例:

var requestList = [ ajax1 , ajax2 , ajax3 , ... ];  //存有不确定数量的ajax请求对象的数组
$.when.apply($, requestList).done(function () {
    //通过arguments来取出每个ajax请求成功函数返回的数据
    //doSomething
});

相关文章

网友评论

      本文标题:使用jQuery时,需要合并未知数量个ajax请求方法

      本文链接:https://www.haomeiwen.com/subject/qfjxpttx.html