【发布时间】:2013-10-09 20:07:24
【问题描述】:
以下脚本应该执行以下操作:
在页面加载时,它会设置 20 秒的超时时间,然后所需的内容将在 ajax 调用中自动更新。
如果用户点击一个显示 RELOAD 的按钮,它将调用函数reloadContent(),从而清除超时并再次设置。
所以基本上,如果用户手动重新加载,它应该重新启动超时,以避免调用太接近。
它工作了一半,因为计时器似乎被重置了,但是reloadContentTimeout() 将在手动加载动作的 10 秒后执行,这是超时时间的一半。
我做错了吗?
谢谢!
/**
* Reload content
*/
function reloadContent(elementId) {
$(elementId).load(window.location.href+' '+elementId+' > *');
clearTimeout(timeoutId);
reloadContentTimeout(false);
}
/**
* Reload content every X seconds (20)
*/
var timeoutId;
function reloadContentTimeout(now)
{
now = (typeof now === 'undefined' ? true : now);
if( now ) {
reloadContent('#table-content');
}
timeoutId = setTimeout(reloadContentTimeout, 1000 * 20);
}
reloadContentTimeout(false);
【问题讨论】:
标签: javascript ajax settimeout