Javascript 如果在调用setTimeout后未调用ClearTimeout,是否存在内存泄漏问题
调用Javascript 如果在调用setTimeout后未调用ClearTimeout,是否存在内存泄漏问题,javascript,Javascript,调用setTimeout后,如果不调用cleartimout,是否存在内存泄漏问题 谢谢。否。如果要阻止挂起的setTimeout发生,只需调用clearTimeout。setTimeout发生后,计时器id不再有效,但幸运的是使用无效的计时器id调用clearTimeout是无害的 如果您看到内存泄漏发生,则问题出在其他地方。有时设置超时会导致内存泄漏。。。见以下文章: 不过,请注意IEx具有垃圾收集器的微妙之处;我认为,如果在Javascript闭包中引用DOM变量,那么收集机制就会变得混乱
setTimeout
后,如果不调用cleartimout
,是否存在内存泄漏问题
谢谢。否。如果要阻止挂起的setTimeout发生,只需调用clearTimeout。setTimeout发生后,计时器id不再有效,但幸运的是使用无效的计时器id调用clearTimeout是无害的
如果您看到内存泄漏发生,则问题出在其他地方。有时设置超时会导致内存泄漏。。。见以下文章: 不过,请注意IEx具有垃圾收集器的微妙之处;我认为,如果在Javascript闭包中引用DOM变量,那么收集机制就会变得混乱,并且在请求结束时不会被破坏:最终这将成为内存泄漏。我认为这是因为DOM变量和内部JS变量是由两个不同的收集器收集的,它们不能正确地交流不再使用的内容 我认为可以通过将变量设置为null来解决此问题:
setTimeout(function(){
myFunction(parameter);
parameter = null
}, myTimeout);
这会显式地启动垃圾收集。为什么要问这个问题?你能详细说明一下吗?使用setTimeout时是否遇到内存泄漏?你的目标浏览器是什么?如果没有调用setTiemout怎么办?@jsbisht这没有意义。从未调用setTimeout的唯一原因是从未进入事件循环。例如,如果您有一个无限循环,则不会调用setTimeout、网络I/O或磁盘I/O