未使用的DOM元素会发生什么?

时间:2012-05-25 10:05:20

标签: javascript html5 dom

假设我创建了一个具有自己的画布的类:

this.canvas = document.createElement("canvas");

我使用那个画布,绘制一些东西等,但从不将画布添加到DOM树。 当我完成后,我将不再使用全班。

所以,当我删除使用画布的类时,画布是否仍会占用内存?我是否必须以某种方式删除它?

或者,作为一个更普遍的问题:不再存在于DOM树中的未使用元素会发生什么变化或从未发生过(在网站中不可见)?它们会被垃圾收集和/或你能加快速度以提高性能吗?

1 个答案:

答案 0 :(得分:1)

正如您已经正确地注意到的那样,这不是关于DOM树,而是关于对象引用的更多信息。垃圾收集者。

当您通过null基础对象删除/删除课程时,所有现代收藏家都会照顾您。即使不将节点插入DOM,您也不必担心任何隐藏的引用。我看到有几个人明确地将<canvas>引用设置为null,但我想这是纯粹的IE8偏执狂。