假设我创建了一个具有自己画布的类:
this.canvas = document.createElement("canvas");
我使用那个画布,绘制一些东西等等,但从未将画布添加到DOM树中。 完成后,我将不再使用整个类。
所以当我删除使用画布的类时,画布是否仍然占用内存?我需要以某种方式删除它吗?
或者更一般的问题是:未使用的元素会怎样,它们不再在DOM树中或从未在其中(网站上不可见)?它们是否会被垃圾回收和/或您能加速这一过程以提高性能吗?
假设我创建了一个具有自己画布的类:
this.canvas = document.createElement("canvas");
我使用那个画布,绘制一些东西等等,但从未将画布添加到DOM树中。 完成后,我将不再使用整个类。
所以当我删除使用画布的类时,画布是否仍然占用内存?我需要以某种方式删除它吗?
或者更一般的问题是:未使用的元素会怎样,它们不再在DOM树中或从未在其中(网站上不可见)?它们是否会被垃圾回收和/或您能加速这一过程以提高性能吗?
正如你正确地指出的那样,这不是关于DOM树的问题,而更多地涉及到对象引用和垃圾收集器。
当你通过将基本对象设置为null
来删除/移除一个类时,所有现代收集器都会为你处理。通过甚至不将节点插入DOM中,你也不必担心任何隐藏的引用。我见过一些人明确将<canvas>
引用设置为null
,但我想这纯粹是IE8的偏执症。