假设我创建了一个具有自己的画布的类:
this.canvas = document.createElement("canvas");
我使用那个画布,绘制一些东西等,但从不将画布添加到DOM树。 当我完成后,我将不再使用全班。
所以,当我删除使用画布的类时,画布是否仍会占用内存?我是否必须以某种方式删除它?
或者,作为一个更普遍的问题:不再存在于DOM树中的未使用元素会发生什么变化或从未发生过(在网站中不可见)?它们会被垃圾收集和/或你能加快速度以提高性能吗?
答案 0 :(得分:1)
正如您已经正确地注意到的那样,这不是关于DOM树,而是关于对象引用的更多信息。垃圾收集者。
当您通过null
基础对象删除/删除课程时,所有现代收藏家都会照顾您。即使不将节点插入DOM,您也不必担心任何隐藏的引用。我看到有几个人明确地将<canvas>
引用设置为null
,但我想这是纯粹的IE8偏执狂。