【问题标题】:How to delete images from memory in a browser如何在浏览器中从内存中删除图像
【发布时间】:2015-07-07 02:33:10
【问题描述】:

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

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

delete (document.images[7]);


document.images[7].src = null;


document.images[7] = null;

【问题讨论】:

    标签: javascript html image firefox


    【解决方案1】:

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

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

    我不知道这会为你节省多少内存,如果有的话。在这种情况下,delete 运算符不会做任何事情,因为返回的 HTMLCollection 是 ready-only

    您需要释放内存有什么特别的原因吗?也许有一些内存泄漏?也许这会有所帮助:http://www.ibm.com/developerworks/web/library/wa-memleak/

    【讨论】:

      【解决方案2】:

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

      您还必须从另一个窗口/选项卡中删除它。那时,如果不再引用它,浏览器的垃圾收集可能会启动并清理,但您不能强制垃圾收集器启动。您可以尝试加载一堆其他图像/内容,但是那你反正就是在浪费内存。

      【讨论】:

      • 浏览器分配用于管理单个页面(可能是选项卡)的内存与分配用于管理图像的内存不同,尽管在多个页面(选项卡)中使用的相同图像可能需要唯一的内存分配。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-18
      • 1970-01-01
      • 1970-01-01
      • 2017-03-27
      • 1970-01-01
      • 2017-03-14
      • 1970-01-01
      相关资源
      最近更新 更多