jquery - 每秒执行一次 Ajax 请求

标签 jquery ajax

我对 php 文件进行了 ajax 调用。我正在收到结果。现在我正在研究是否可以让ajax请求每1秒自动执行一次。我将结果发布到名为 hidden 的输入字段中。如何每三秒执行一次ajax调用而不必调用该函数?

    $.ajax({
            type: 'POST',
            url: 'increment.php',
            data: $(this).serialize(),
            dataType: 'json',
            success: function (data) {
                    $('#hidden').val(data);// first set the value     

            }
    });

最佳答案

您可以通过一系列重复的 setTimeout 调用来完成此操作。 (不要setIntervalajax 调用一起使用,您很快就会陷入困惑;setInterval 将触发即使前一个 ajax 调用尚未完成,也会关闭下一个 ajax 调用。)

使用 setTimeout 安排第一个调用,然后在完成后安排下一个调用,等等:

var interval = 1000;  // 1000 = 1 second, 3000 = 3 seconds
function doAjax() {
    $.ajax({
            type: 'POST',
            url: 'increment.php',
            data: $(this).serialize(),
            dataType: 'json',
            success: function (data) {
                    $('#hidden').val(data);// first set the value     
            },
            complete: function (data) {
                    // Schedule the next
                    setTimeout(doAjax, interval);
            }
    });
}
setTimeout(doAjax, interval);

请注意,我使用的是complete,而不是success来安排下一次通话,这样中断(“网络连接暂时中断”,无论如何)都不会发生。不要终止进程。

关于jquery - 每秒执行一次 Ajax 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20371695/

相关文章:

jquery - Prettyphoto 在页面开始水平 1page 网站上加载

jquery - 如何在背景中制作带有图像的网站

javascript - javascript中的内存泄漏,循环内的函数

javascript - 无法通过 Shopware 6 中的 XmlHttpRequest 请求 PageController

jquery - 如何防止提交事件并通过 onclick 事件调用 ActionResult Method Create 使用 Jquery ASP.NET MVC 提交表单数据?

javascript - Jquery 最佳案例场景

javascript - 如何让 jQuery 将自定义参数传递给异步 AJAX 回调函数?

javascript - 当用户注销其中一个选项卡时,如何自动从所有打开的选项卡中注销用户?

javascript - 动态数据更新,无需刷新或重新加载

javascript - 获取到指定的父元素,然后找到指定的子元素