javascript - 跟踪成功的 ajax 请求/返回

标签 javascript ajax

我正在尝试找到一种方法来仅使用 javascript 而不是 jquery 或其他库来跟踪成功的 ajax 返回。我想要做的是在函数被触发时显示加载图形,并在返回所有结果时清除图形。我的函数分解输入并调用定义数量的 ajax 请求。

我读到没有直接的方法可以做到这一点。我正在尝试设置一个函数来计算成功的请求,但我遇到了无法解决的逻辑障碍。我的基本轮廓如下:

TIA

编辑以更新解决方案。

解决办法是创建ct作为全局变量 我的工作代码大纲是

var ct = 0;//declare outside of function as global


function ajaxcallback(...) { 
...
if (success)
{
//output/do something
ct++; //increase global ct by 1

countajax (total);//call countajax

}
}//end function

function countajax (total)
{
    if (ct == total)
    {
    //turn off loading graphic  
    }
}//end countajax

我认为countajax函数不是必需的,ct == Total的比较可以不调用函数countajax来完成。

最佳答案

实际上有一个非常简单的方法可以做到这一点:

从每个ajax回调内部调用一个方法,并确保该函数仅在所有ajax调用完成时才真正执行任何操作,如下所示:

(function() {
    var ajax1_done = ajax2_done = ajax3_done = false;

    function ajax1_callback() {
      ajax1_done = true;
      run_when_all_is_done();
    }

    function ajax2_callback() {
      ajax2_done = true;
      run_when_all_is_done();
    }

    function ajax3_callback() {
      ajax3_done = true;
      run_when_all_is_done();
    }

    function run_when_all_is_done() {
      if(ajax1_done && ajax2_done && ajax3_done) {
        //do stuff here
      }
    }
})();

关于javascript - 跟踪成功的 ajax 请求/返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7579027/

相关文章:

javascript - 单击时循环显示表格行的背景颜色

javascript - 带有ajax错误消息的表单提交

javascript - 使用 Javascript 获取 PHP 数据并将其分配给数组

php - AJAX 聊天框向上滚动问题

javascript - 如何使用不同的间隔过滤一组数字?

javascript - 为什么测试字符等于同一个字符?

javascript - 如何使用 javascript 动态更改元素的不透明度

javascript - 使用服务器端事件动态发送消息到浏览器

javascript - 在进行需要身份验证的 ajax 调用时如何抑制浏览器的 "authentication required"对话框?

javascript:如何在没有jquery或其他库的情况下将表单数据序列化为字符串