所有AJAX POSTS完成后如何刷新页面

时间:2016-03-04 23:53:18

标签: jquery ajax post

我有一个应用程序,我点击一个按钮和应用程序15 AJAX POST请求(所有异步)。

我想在完成所有帖子请求后刷新。有没有办法可以检测/确认所有AJAX请求都已完成然后刷新页面?

经过一些研究,我发现可能的一种方法是将.ajaxStop方法置于ajax成功条件之一:

success: function(data, status) {       

    $(document).ajaxStop(function() {location.reload(true); });

},

有人可以确认这是否准确?

提前致谢!

1 个答案:

答案 0 :(得分:0)

根据我的评论:

$(function() {

  $(document).ajaxStop(function() {
    if(foo_flag) {
      foo_flag = false;
      alert('done');
      location.reload(true);
    }
  });

  var foo_flag = false;

  $('.not-foo').click(function() {
    $.ajax({
        method: 'post',
        data: {
          html: 'wololo'
        },
        url: '/echo/html/',
        success: function(result) {
          $("#output").append(result);
        }
      });
  });

  $('.foo').click(function() {
    foo_flag = true;
    for(i = 0; i < 16; i++) {
      $.ajax({
        method: 'post',
        data: {
          html: 'bar',
        },
        url: '/echo/html/',
        success: function(result) {
          $("#output").append(result);
        }
      });
    }
  });
});

这样,只要你按下按钮并且所有的ajax调用完成,你的重新加载就不会在任何ajax请求完成时启动。

jsfiddle