Javascript setTimeout 在 ajax 加载的页面中触发多次

标签 javascript ajax settimeout

我正在通过 ajax 调用加载的页面中执行 setTimeout 函数。但是如果我再次点击链接加载页面,恐怕最后的setTimeout调用仍然会继续并且setTimeout设置的调用间隔次数会执行多次。

试过这是远程页面:

var RefreshInterval = null;
clearTimeout(RefreshInterval);

function someFunction()
{
....
    setNextRefresh();

}

function setNextRefresh() {
    console.log(wifiRadarRefreshInterval);
    RefreshInterval = null;
    clearTimeout(RefreshInterval);
    RefreshInterval = setTimeout('someFunction();', 20*1000);
}

最佳答案

在由 ajax 加载的页面之外声明 var RefreshInterval = null; 并在页面上使用此代码:

clearTimeout(RefreshInterval);

function someFunction()
{
....
    setNextRefresh();

}

function setNextRefresh() {
    console.log(wifiRadarRefreshInterval);
    clearTimeout(RefreshInterval);
    RefreshInterval = setTimeout('someFunction();', 20*1000);
}

关于Javascript setTimeout 在 ajax 加载的页面中触发多次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36080468/

相关文章:

javascript - 有什么比 setTimeout 和 requestAnimationFrame 更快的吗?

javascript - 从一组数字中计算百分比

javascript - 匿名自执行js函数内部的全局变量在外部仍然可用吗?

java - 如何在Ajax成功方法中打开Spring ModelAndView响应作为一个完整的页面

javascript - 引用 SELECT 列表 jQuery

javascript - 非阻塞 setTimeout

javascript - 在窗口焦点事件之前,在 HTML 的 body 标记中运行 onload 事件

javascript (safari) - 'undefined' 不是评估 elm.parentNode.remove(elm) 的函数

javascript - 如何像 Ember.js 那样抽象 ajax 请求的异步行为?

javascript - 为什么settimeout不延迟函数执行?