当页面导航时,Javascript会发生什么?

时间:2013-02-04 18:48:41

标签: javascript onunload

当页面导航时,Javascript会发生什么? 我正在阅读的一本书正指示清除“卸载”事件。

但重点是什么?当页面在浏览器中移动时,一切都不会丢失和释放吗?

谢谢,

肖恩

3 个答案:

答案 0 :(得分:1)

唯一有用的情况是清除在DOM和JS引擎之间具有循环引用的事件处理程序(并不总是事件处理程序,但这是最常见的方式),因此导致内存泄漏。卸载页面时,其他所有内容都是垃圾回收

请参阅此帖子Javascript memory leaks after unloading a web page

答案 1 :(得分:1)

通常浏览器在页面导航后可以很好地清理内存。然而,有些事情可以让您混淆浏览器并使其在页面转换之间挂起到内存。当您在DOM元素中存储数据,或者在DOM和脚本之间使用循环引用时,尤其如此。

几年前在旧浏览器中这是一个更大的问题。当前的浏览器版本更适合页面转换之间的内存清理。

在页面卸载期间进行一些清理可能是有意义的,但更好的是修改你的设计以消除循环引用。不要将数据存储在DOM中。

以下是good article了解详情。

关于FireFox中JavaScript泄漏的article at MDN

这是一个具有IE特定细节的Microsoft Knowledge Base article

答案 2 :(得分:-1)

不确定。但是你可以通过卸载在浏览器中释放一些内存(现在不是很有用,但在过去很有用)。或者你可以在卸载时做一些动作(即要求用户确认,保存东西等......)。

相关问题