jquery - jQuery AJAX 中带有 ajaxStop 的递归调用函数

标签 jquery ajax

我有一个功能:

function primaj(){
$('#tmp').load('msg1.php');
$("#tmp").ajaxStop(function(){
        //do some code
   primaj();
  });
}

我期望加载请求运行,并且当它完成时再次调用该函数。但我发现每次调用该函数后,下一次调用的次数都会加倍,从 1 到 2 到 4 到 8 等等......

我的目的是对服务器进行持续加载调用,但如果我使用 setInterval 命令(有效),有时服务器需要更长的时间来响应,因此该函数是通过它自己调用的。

有没有办法知道ajax加载命令何时停止,然后再次调用它?

最佳答案

这很简单:

function primaj() {
    $('#tmp').load('msg1.php', primaj);
}​

您所做的是附加一个新的回调,以便在每次将来 ajax 完成后运行。
虽然我的代码所做的是设置回调以在当前 ajax 完成后运行。

关于jquery - jQuery AJAX 中带有 ajaxStop 的递归调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10367126/

相关文章:

javascript - 如何使用 jQuery 禁用多个链接?

javascript - 自调用函数调用

javascript - 如何使用js提取ajax调用的响应?

jquery - 如何让 'simple tip' jQuery 在 Ajax 加载的页面上工作?

jquery - php ajax表单提交而不刷新父页面

jquery - Ajax 模式表单提交中的 {readyState : 4, getResponseHeader : ƒ, getAllResponseHeaders : ƒ, setRequestHeader : ƒ, overrideMimeType : ƒ, …} 消息

javascript - .. 点后重定向页面

javascript - 销毁 jQuery TreeTable 实例

javascript - 如何修复 div 倾斜的内容?

javascript - Web 浏览器未在 Ajax 调用上设置 cookie