在一段时间后自动调用 JavaScript 函数的正确方法是什么
what is the proper way to auto call function in Javascript after an interval of time?
我需要在一分钟后调用一个函数并更新div
。
基本上,当表中出现新条目时,我需要刷新页面,所以我认为Ajax在一分钟后调用并更新内容。请告诉我这是否是正确的方法?
如果需要函数每 60 秒运行一次,可以使用setInterval()
:
setInterval(function() {
/* AJAX call here. */
}, 60000);
如果只需要它运行一次,则可以使用setTimeout()
:
setTimeout(function() {
/* AJAX call here. */
}, 60000);
对于两者,60,000 是毫秒延迟(60,000ms = 1 分钟(。
您可以使用 setInterval
对仅当上一个调用成功完成时才进行 ajax 调用的函数执行 60 秒(60000 毫秒(的setTimeout
(因此,例如,如果您的服务器返回给定资源的 404 或 500 状态,您可以避免进行无用的 ajax 调用(
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(( 和它的兄弟 setInterval((
设置超时 - 调用一次
setInterval - 每指定一次调用
例子:
setTimeout(function() { doStuffOnce(); }, 1000);
setInterval(function() { doStuff(); }, 1000);
如果您需要做的就是等待 AJAX 完成,那么您不应该使用固定超时。如果 AJAX 调用花费的时间超过一分钟,会发生什么情况?如果 AJAX 调用在一秒钟左右完成(通常如此(,为什么要让用户等待整整一分钟(在浏览器中永远如此(。相反,只需使用 AJAX 调用本身的回调,例如
$("/url/to/your/AJAX").done(function(data) {
// do what you need to do with the data now
})
> Youy 可以同时使用两者setTimeout(( 方法在指定的毫秒数后调用函数或计算表达式。
setTimeout(code,millisec,lang(
代码 必需。将执行的函数毫秒必填。执行代码之前等待的毫秒数朗自选。脚本语言:JScript |VBScript |JavaScript
setInterval(( 方法以指定的时间间隔(以毫秒为单位(调用函数或计算表达式。
setInterval(( 方法将继续调用该函数,直到调用 clearInterval(( 或关闭窗口。
setInterval(( 返回的 ID 值用作 clearInterval(( 方法的参数。
提示:1000 毫秒 = 1 秒。
setInterval(code,millisec,lang(
代码 必需。将执行的函数毫秒 必填。执行代码的频率的间隔(以毫秒为单位(朗 自选。JScript |VBScript |JavaScript
- 打破承诺链的好方法是什么
- 在JavaScript中拆分日期字符串的更好方法是什么
- 将jQuery.ech()方法转换为本地JavaScript抽象的最佳方法是什么
- 处理浮点错误的最佳方法是什么
- 基于窗口宽度jquery的函数的替代方法是什么
- knex:根据结果创建数组的合适方法是什么
- 以编程方式填充组合框道场 (1.8) 的最佳方法是什么?
- 使用Modernizr检测移动设备最可靠的方法是什么
- 确定var是否是javascript中的elementFinder对象的方法是什么
- 用javascript修复这个JSON对象字符串最干净的方法是什么
- 让会话值可用于JavaScript的好方法是什么
- 从AngularJs获取谷歌地图对象的正确方法是什么
- 使用ReactJS和Flux架构从服务器获取数据的正确方法是什么
- 列出没有 mysql 的元素的最佳方法是什么
- 克服错误的更优雅的方法是什么:需要对象说明符.当通过JXA通过Messages发送SMS时,参数没有对象说明符
- 使用较少代码隐藏和显示选择菜单内容的更好方法是什么?javascript
- 在 Javascript 中实现解耦代码/回调的正确方法是什么?
- 使用Javascript,获取元素的方法是什么,基于打开和关闭标记之间的文本
- 在d3.json中使用d3.csv组合多个csv文件数据输入的最佳方法是什么
- 直接在DOM事件处理程序中调用作用域函数的最短方法是什么