我对 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
调用来完成此操作。 (不要将 setInterval
与 ajax
调用一起使用,您很快就会陷入困惑;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/