setInterval问题

时间:2011-05-29 07:35:14

标签: javascript jquery

我使用JQuery实现了setInterval来更新受保护页面中的div。当站点的这一部分的会话到期时,用户将被带回站点的公共端。仅当用户单击刷新该页面的链接时,才会执行此操作。

我遇到的问题是粗心的用户没有注销,并且setInterval继续尝试更新div,从而在Apache中创建了一个巨大的访问日志文件。 (>每天12Mb)setInterval继续尝试更新,因为即使会话已经死亡,页面也不会刷新,因此setInterval会继续运行。

有一种方法可以在一定时间后杀死setInterval吗?说12个小时左右。

1 个答案:

答案 0 :(得分:1)

是的,setTimeout函数返回一个timerID,您可以通过调用clearTimeout来杀死计时器。但是,setTimeout仅发生一次,当用户导航离开页面时,它们会自动取消。 (你使用的是框架吗,因为否则这应该不是问题)

我建议使用一个不那么详细的方法,依靠AJAX和会话上下文来检测用户何时不再处于活动状态,只需自动将其注销。