我需要在一分钟后调用一个函数并更新div
.
基本上我需要刷新页面,因为新条目出现在表中,所以我认为一分钟后调用 Ajax 并更新内容。请告诉我这是否是正确的方法?
我需要在一分钟后调用一个函数并更新div
.
基本上我需要刷新页面,因为新条目出现在表中,所以我认为一分钟后调用 Ajax 并更新内容。请告诉我这是否是正确的方法?
如果您需要该功能每 60 秒运行一次,您可以使用setInterval()
:
setInterval(function() {
/* AJAX call here. */
}, 60000);
如果您只需要它只运行一次,您可以使用setTimeout()
:
setTimeout(function() {
/* AJAX call here. */
}, 60000);
对于两者,60,000 是毫秒延迟(60,000 毫秒 = 1 分钟)。
仅当前一个调用已成功完成时,您才可以对进行 ajax 调用的函数setInterval
执行60 秒(60000 毫秒)而不是使用 a (因此,例如,如果您的服务器返回,您可以避免进行无用的 ajax 调用setTimeout
给定资源的 404 或 500 状态)
var xhr = new XMLHttpRequest();
function doAjaxCall() {
...
xhr.onReadyStateChange = function() {
...
if (xhr.readyState === 4) {
if (xhr.status === 200 || xhr.status === 304) {
setTimeout(doAjaxCall, 60000);
}
}
}
}
doAjaxCall();
您可以同时使用 setTimeout() 方法调用函数或在指定的毫秒数后计算表达式。
设置超时(代码,毫秒,语言)
代码必需。将被执行的函数 毫秒必需。执行代码前等待的毫秒数 lang可选。脚本语言:JScript | VB脚本 | JavaScript
setInterval() 方法以指定的时间间隔(以毫秒为单位)调用函数或计算表达式。
setInterval() 方法将继续调用该函数,直到调用 clearInterval() 或关闭窗口。
setInterval() 返回的 ID 值用作 clearInterval() 方法的参数。
提示:1000 毫秒 = 1 秒。
setInterval(代码,毫秒,语言)
代码 必需。将被执行的函数 毫秒 必需。执行代码的频率间隔(以毫秒为单位) lang 可选。脚本 | VB脚本 | JavaScript
如果您需要做的只是等待 AJAX 完成,那么您不应该使用固定超时。如果 AJAX 调用超过一分钟会发生什么?如果 AJAX 调用在一秒钟左右完成(通常是这样),为什么还要让用户等待一整分钟(这在浏览器中是永远的)。相反,只需使用 AJAX 调用本身的回调,例如
$("/url/to/your/AJAX").done(function(data) {
// do what you need to do with the data now
})
setTimeout()和它的兄弟setInterval()
setTimeout - 调用一次
setInterval - 每隔指定的时间间隔调用一次
例子:
setTimeout(function() { doStuffOnce(); }, 1000);
setInterval(function() { doStuff(); }, 1000);