gpt4 book ai didi

jquery - AJAX间隔刷新?

转载 作者:行者123 更新时间:2023-12-03 22:44:08 24 4
gpt4 key购买 nike

我正在尝试使 AJAX 功能更新大约 30 秒。我已经完成了一个简单的版本,这是代码。

var refInterval = window.setInterval('update()', 30000); // 30 seconds

var update = function() {
$.ajax({
type : 'POST',
url : 'post.php',
success : function(data){
$('.voters').html(data);
},
});
};

这是有效的,但是,当函数第一次被调用时,我不希望它等待 30 秒,我只想调用该函数,然后等待 30 秒,再次调用,等待 30 秒,再次调用,等等。有什么帮助吗?

最佳答案

考虑使用setTimeout代替 - 它更可靠。 setInterval 计时器可以在窗口没有焦点时堆叠,然后在窗口再次获得焦点时立即运行。使用 setTimeout 还可以确保在第一个 AJAX 请求由于某种原因阻塞时不会出现多个排队的 AJAX 请求。

要立即启动循环,请在函数周围使用 IIFE(“立即调用函数表达式”):

(function update() {
$.ajax({
... // pass existing options
}).then(function() { // on completion, restart
setTimeout(update, 30000); // function refers to itself
});
})(); // automatically invoke for first run

附:不要对 setIntervalsetTimeout 使用字符串参数 - 只需直接传递函数引用。

关于jquery - AJAX间隔刷新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24494805/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com