【发布时间】:2011-09-05 00:13:58
【问题描述】:
我正在开发一个 div(父级),该 div 有两个其他 div(菜单和内容),如下所示:
<div id="parent">
<div id="menu"></div>
<div id="content"></div>
</div>
在内容 div 中加载的内容是一个 html 文件,它具有一些 javascript 功能,例如每 5 秒重新加载其内容的自动刷新。
$(document).ready(function () {
setInterval(function () {
grid.reloadDefaultContent(); //this reloads the content on content div.
}, 5000);
}
页面上有一些链接将不同的内容加载到内容 div 中。到目前为止一切顺利,直到我回到具有自动刷新功能的“家”。问题是自动刷新从未停止,现在我再次单击返回主页,该功能运行两次(或我更改页面并返回主页的次数),开始会话。
我正在使用 jQuery $.load() 加载页面。
关于如何使 setInterval 实例只运行一次的任何想法?
编辑:在阅读了我自己的问题后,我发现它有点不清楚。我的主要问题是,当我回到家时,我的第一个 setInterval 实例已经在运行,并且第二个实例开始了,这使得 5 秒的自动刷新变得更快,并且每次我都会变得越来越快更改页面并返回主页。这不是我想要的行为。我需要的是在更改 div 上的内容时停止 setInterval 的实例,并在我回家时重新启动它。
【问题讨论】:
-
“独立于用户更改页面/div 内容”是什么意思?目前尚不清楚这与计时器问题有什么关系。
-
grid是如何定义的?它是全局的还是闭包内的? -
@Pointy:我认为“我没有选择使用
setTimeout代替setInterval”。但我可能错了……
标签: javascript jquery setinterval