如何在浏览器中从内存中删除图像

时间:2010-03-24 16:53:19

标签: javascript html image firefox

是否可以使用javascript从浏览器(firefox2)内存中删除一些图像?通过这样做,我想节省一些宝贵的浏览器内存,让我的网络应用程序更好地工作。

我想如果可能的话,它会是这样的:

delete (document.images[7]);


document.images[7].src = null;


document.images[7] = null;

2 个答案:

答案 0 :(得分:3)

最明智的做法是从DOM中删除Image元素。

var img = document.images[7]; img.parentNode.removeChild(img)

我不知道有多少内存会拯救你,如果有的话。 delete运算符在这种情况下不会执行任何操作,因为返回的HTMLCollection是ready-only

你需要释放内存吗?也许有一些内存泄漏?也许这会有所帮助:http://www.ibm.com/developerworks/web/library/wa-memleak/

答案 1 :(得分:0)

您无法直接从浏览器的内存缓存中删除任何内容。 Javascript无法实现这种细粒度访问。您最多可以通过从DOM树中删除对该特定图像的任何引用来删除正在查看的页面中的图像。

您还必须从其他窗口/标签中删除它。此时,如果没有更多的引用,浏览器的垃圾收集可以启动并清理,但你不能强制垃圾收集器启动。你可以通过加载一堆其他图像/内容来尝试,但是然后你就是在浪费记忆力。