如何处理多个异步请求?

时间:2017-05-31 04:04:17

标签: javascript jquery ajax

我有两个请求,一个是加载映像(后端服务器将花费很多时间),另一个是ajax。 我想要跟随:

$.when(
   [do image load]
   [do ajax]
).then(
  alert('all complete')
)

然而, $。当 然后 用于多个ajax请求时,如何处理ajax和图像加载

2 个答案:

答案 0 :(得分:0)

$.when(
  $.get("/ajax/", function(response) {
    //process ajax
  }),
  $.get("/assets/image.png", function(image) {
    // process image
  }),
).then(function() {
  // All is ready now, so...
  alert('all complete')
});

答案 1 :(得分:0)

我想从jQuery callback on image load (even when the image is cached)

建议Gauri的imgLoad插件
 /**
 * Trigger a callback when 'this' image is loaded:
 * @param {Function} callback
 */
(function($){
    $.fn.imgLoad = function(callback) {
        return this.each(function() {
            if (callback) {
                if (this.complete || /*for IE 10-*/ $(this).height() > 0) {
                    callback.apply(this);
                }
                else {
                    $(this).on('load', function(){
                        callback.apply(this);
                    });
                }
            }
        });
    };
})(jQuery);

用法,

$('#img-if').imgLoad(function(){
    // inside the image complete callback
    $.ajax({
        ....
        success:function(response){
           // final code to be executed here
        }
    })
});