比如我再页面a.html  window.onload = function(){
    setInterval(checkTime,3600000);
}用户点击a.html中链接跑到b.html 页面
setInterval  (1)是否仍然在作用
其实我是想说内存中是否仍然有setInterval 再作用(但是我不能确定(2)setInterval定义后保存在什么里面,是否在内存中,存在的话是以什么方式存在的。。)最后我想知道如果(3)setInterval还存在  我如何销毁它。注意 如果要销毁最好再离开a.html 就销毁 因为一旦进入a.html是不是就创建这样的一个setInterval

解决方案 »

  1.   

    1、链接跑到b.html 页面,定时器是肯定无效了的,除非你b页面也有这类定时器
    2、涉及到javascript的内存管理,我也不大懂,过于深奥
    3、离开a页面,javascript就会自动销毁。手动销毁:
    var intervalID;
    window.onload = function(){
        intervalID=setInterval(checkTime,3600000);
    }
    ////销毁事件
    window.onunload=function(){
    clearInterval(intervalID) //重点是这
    }
      

  2.   

    (1)离开a页面就不再有效了
    (2)是在内存中的,以堆栈的形式实现,当执行完一次之后被压入新的堆栈中等待,到interval的时间后执行
    (3)javascript是有自己的垃圾回收机制的,离开这个页面后,会自动调用回收机制,将内存回收,所以不用销毁。如果在某些情况下需要销毁的话,2楼得方法可以
      

  3.   

    把a.html看作一个window,然后你加的js代码都是window对象的属性,window.onload=*****离开a.html之后,window对象消失,故window.onload也不存在了
      

  4.   

    要销毁的话,可以用一个变量来:
    var a = setInterval(checkTime,3600000);销毁 a = null;
      

  5.   

    1.当打开一个页面的时候,系统给这个页面分配了一个内存空间,这个页面关闭,或是跳转到其它页面了,这个内存空间就回收了。页面定义的所有东西也就不存在了。
    2.setInterval()是存在内存中的,它返回的是一个引用,这个值和setInterval的存在地址相关
    3.clearInterval(返回值) setInterval返回的值。