问大家一个简单的JS定时器问题

jiashu912387 2011-07-19 03:02:10
比如我再页面a.html

window.onload = function(){
setInterval(checkTime,3600000);
}

用户点击a.html中链接跑到b.html 页面
setInterval (1)是否仍然在作用
其实我是想说内存中是否仍然有setInterval 再作用(但是我不能确定(2)setInterval定义后保存在什么里面,是否在内存中,存在的话是以什么方式存在的。。

最后我想知道如果(3)setInterval还存在 我如何销毁它。注意 如果要销毁最好再离开a.html 就销毁 因为一旦进入a.html是不是就创建这样的一个setInterval




...全文
307 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
lsw645645645 2011-07-20
  • 打赏
  • 举报
回复
1.当打开一个页面的时候,系统给这个页面分配了一个内存空间,这个页面关闭,或是跳转到其它页面了,这个内存空间就回收了。页面定义的所有东西也就不存在了。
2.setInterval()是存在内存中的,它返回的是一个引用,这个值和setInterval的存在地址相关
3.clearInterval(返回值) setInterval返回的值。
  • 打赏
  • 举报
回复
楼主多虑且少动手了。
confidenceyu 2011-07-19
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 maderic 的回复:]

(1)离开a页面就不再有效了
(2)是在内存中的,以堆栈的形式实现,当执行完一次之后被压入新的堆栈中等待,到interval的时间后执行
(3)javascript是有自己的垃圾回收机制的,离开这个页面后,会自动调用回收机制,将内存回收,所以不用销毁。
[/Quote]
销毁clearInterval()
Jony07 2011-07-19
  • 打赏
  • 举报
回复
要销毁的话,可以用一个变量来:
var a = setInterval(checkTime,3600000);

销毁 a = null;
cb1156 2011-07-19
  • 打赏
  • 举报
回复
离开一个页面时,如果有事件,则会执行同步JS,异步的都不会再执行了。
每个语言都有自己的垃圾回收机制,个人觉得不必过于深究。。。
hongmei85 2011-07-19
  • 打赏
  • 举报
回复
把a.html看作一个window,然后你加的js代码都是window对象的属性,window.onload=*****

离开a.html之后,window对象消失,故window.onload也不存在了
MadEric 2011-07-19
  • 打赏
  • 举报
回复
(1)离开a页面就不再有效了
(2)是在内存中的,以堆栈的形式实现,当执行完一次之后被压入新的堆栈中等待,到interval的时间后执行
(3)javascript是有自己的垃圾回收机制的,离开这个页面后,会自动调用回收机制,将内存回收,所以不用销毁。

如果在某些情况下需要销毁的话,2楼得方法可以
蒙奇D路飞 2011-07-19
  • 打赏
  • 举报
回复
离开了页面,定时器应该就失效了吧,内存里可能还会驻留,毕竟内存管理也是虚拟机来自动管理的,不是我等可以决定的了
itliyi 2011-07-19
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 xs8577 的回复:]
1、链接跑到b.html 页面,定时器是肯定无效了的,除非你b页面也有这类定时器
2、涉及到javascript的内存管理,我也不大懂,过于深奥
3、离开a页面,javascript就会自动销毁。手动销毁:

JScript code

var intervalID;
window.onload = function(){
intervalID=setInterval(ch……
[/Quote]学习
xuexiaodong2009 2011-07-19
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 xs8577 的回复:]

1、链接跑到b.html 页面,定时器是肯定无效了的,除非你b页面也有这类定时器
2、涉及到javascript的内存管理,我也不大懂,过于深奥
3、离开a页面,javascript就会自动销毁。手动销毁:
JScript code
var intervalID;
window.onload = function(){
intervalID=setInterval(checkTi……
[/Quote]不错啊
xs8577 2011-07-19
  • 打赏
  • 举报
回复
1、链接跑到b.html 页面,定时器是肯定无效了的,除非你b页面也有这类定时器
2、涉及到javascript的内存管理,我也不大懂,过于深奥
3、离开a页面,javascript就会自动销毁。手动销毁:
var intervalID;
window.onload = function(){
intervalID=setInterval(checkTime,3600000);
}
////销毁事件
window.onunload=function(){
clearInterval(intervalID) //重点是这
}
jiashu912387 2011-07-19
  • 打赏
  • 举报
回复
3个 标红问题 期待 解答 谢谢。。。。

87,989

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧