我即将对我的网站进行 ajax 化,但我在一些高度 ajax 化的网站(例如 facebook 本身)中观察到,如果您浏览相当长的时间而不刷新浏览器,那么您的浏览器会变慢,分别会使用更多的内存,我想这是由于到 javascript“剩菜”。如果 Facebook 的开发者没能做到这一点,那么就没有必要问这个问题了,但是嘿,如果你不尝试,你就输了。所以问题是“有没有办法在加载新页面之前清除上一页的变量和监听器?”。预先感谢您!
最佳答案
这取决于浏览器,因为每个浏览器都有自己的垃圾收集。不过,您可以删除变量和 HTML 元素,如果 GC 认为它可以回收一些内存,它就会回收一些内存。
我建议使用一些开发工具来实际实时观察内存使用情况。在 Chrome 中,您可以创建配置文件时间线并观察内存使用量的增长/收缩。因此,您实际上可以实时看到代码对内存管理的影响。
为了测试,我喜欢在单击按钮时运行清理代码,这样我就可以准确地知道代码运行的时间以及代码如何影响内存使用情况。
嘿,既然你在那里和开发人员一起玩。现在,请查看您可用的其他工具,它们非常有用。
关于Javascript 清除监听器和变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18496578/