如何在Ajax请求后释放内存

Bri*_*ian 1 javascript browser memory ajax memory-leaks

我的网站上有一个非常基本的ajax幻灯片.在每个滚动条上,新图像和响应内容不断增加浏览器使用的内存量.

我完成了我的研究并尝试了所有建议,以便在每个新请求上重置XHR对象,但这绝对没有任何帮助.

幻灯片是基本的,但可能包含数百张幻灯片.我希望用户能够无限制地浏览幻灯片,而不会崩溃他们的浏览器.这甚至可能吗?

谢谢,Brian

Mar*_*c B 5

增加内存使用量是正常的.毕竟,您每次都要加载更多数据 - 来自AJAX响应的HTML,以及正在显示的图像.除非您使用的是Adobe Pagemill生成的HTML,否则只需几百字节的HTML /文本.这是将吸收最多空间的图像.一切都塞进了浏览器的缓存中.

既然你没有做任何幻想,与DOM(建筑子树和诸如此类的东西)直接,只需更换HTML的一大块重复,最终的浏览器会做一个清理和Chuck一些未使用/老/陈旧的图像从内存中的数据/ cache并回收一些内存.

现在,如果你正在做一些非常复杂的DOM操作,并产生大量的对飞新节点,并在这里和那里泄露一些节点,那么你就会有一个内存问题,因为这些泄露的节点将最终埋葬浏览器.

但是,只需通过加载图像来增加内存使用量就不用担心了,它就像普通的扩展冲浪会话一样,除了你只是加载一些新的图片.