当页面导航时,Javascript会发生什么? 我正在阅读的一本书正指示清除“卸载”事件。
但重点是什么?当页面在浏览器中移动时,一切都不会丢失和释放吗?
谢谢,
肖恩
答案 0 :(得分:1)
唯一有用的情况是清除在DOM和JS引擎之间具有循环引用的事件处理程序(并不总是事件处理程序,但这是最常见的方式),因此导致内存泄漏。卸载页面时,其他所有内容都是垃圾回收
答案 1 :(得分:1)
通常浏览器在页面导航后可以很好地清理内存。然而,有些事情可以让您混淆浏览器并使其在页面转换之间挂起到内存。当您在DOM元素中存储数据,或者在DOM和脚本之间使用循环引用时,尤其如此。
几年前在旧浏览器中这是一个更大的问题。当前的浏览器版本更适合页面转换之间的内存清理。
在页面卸载期间进行一些清理可能是有意义的,但更好的是修改你的设计以消除循环引用。不要将数据存储在DOM中。
以下是good article了解详情。
关于FireFox中JavaScript泄漏的article at MDN。
这是一个具有IE特定细节的Microsoft Knowledge Base article。
答案 2 :(得分:-1)
不确定。但是你可以通过卸载在浏览器中释放一些内存(现在不是很有用,但在过去很有用)。或者你可以在卸载时做一些动作(即要求用户确认,保存东西等......)。