我正在通过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);
}

10-05 23:12