javascript - 如何判断多个Jquery.ajax全部请求完毕?
阿神
阿神 2017-04-11 09:23:13
0
6
1207

想在网页数据加载完成之前显示loading,待所有数据加载完成清除loading,一个页面有多个ajax异步请求,怎么判断全部请求都完成了?

阿神
阿神

闭关修行中......

reply all (6)
巴扎黑

添加一个计数,ajax请求完成后计数+1,并在每次请求完成后都判断计数是否为所有ajax的数量,满足就清除loading

(function () { var count = 0; var result = {}; $.get('http://data1_source', function (data) { result.data1 = data; count++; handle(); }); $.get('http://data2_source', function (data) { result.data2 = data; count++; handle(); }); $.get('http://data3_source', function (data) { result.data3 = data; count++; handle(); }); function handle() { if (count === 3) { var html = fuck(result.data1, result.data2, result.data3); render(html); } } })();
    小葫芦

    想到的有2种方法
    一种是使用jquery自带的when

    $.when($.ajax(), $.ajax()).then(function(){ // 结束 })

    还有一种是设置全局变量

    var ajaxCount = 10 ; var ajaxFinished = function(){ if(ajaxCount > 0){// do nothing} else{ // 请求全部完成,做该做的事情 } } $.ajax(xxx1).then(function(){ ajaxCount --; ajaxFinished(); }); $.ajax(xxx2).then(function(){ ajaxCount --; ajaxFinished(); }) // ...
      左手右手慢动作

      你都异步了,为啥还用loading,前后矛盾啊。

        阿神

        jquery支持promise啊

        $.when($.ajax("..."), $.ajax("..."))
         .done(function(){ alert("Success"); })
         .fail(function(){ alert("Error"); });

          刘奇
          var d1 = $.Deferred(); var d2 = $.Deferred(); function async1(){ d1.resolve( "Fish" ); } function async2(){ d2.resolve( "Pizza" ); } $.when( d1, d2 ).done(function ( v1, v2 ) { console.log( v1 + v2 + '已完成'); });

          浅谈js中多并发的一些处理方法

            阿神
            (function () { var count = 0; var result = {}; $.get('http://data1_source', function (data) { result.data1 = data; count++; if (count === 3) { handle(); } }); $.get('http://data2_source', function (data) { result.data2 = data; count++; if (count === 3) { handle(); } }); $.get('http://data3_source', function (data) { result.data3 = data; count++; if (count === 3) { handle(); } }); function handle() { var html = fuck(result.data1, result.data2, result.data3); render(html); } })();
              Latest Downloads
              More>
              Web Effects
              Website Source Code
              Website Materials
              Front End Template
              About us Disclaimer Sitemap
              php.cn:Public welfare online PHP training,Help PHP learners grow quickly!