6

独自のキャンバスを持つクラスを次のように作成するとします。

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

私はそのキャンバスを使用し、何かを描画しますが、キャンバスを DOM ツリーに追加することはありません。完了したら、クラス全体を使用しなくなります。

では、キャンバスを使用していたクラスを削除しても、キャンバスは引き続きメモリを消費しますか? 何らかの方法で削除する必要がありますか?

または、より一般的な質問として、DOM ツリーに存在しない、または存在しなかった (Web サイトに表示されない) 未使用の要素はどうなりますか? それらはガベージコレクションされますか、またはパフォーマンスを向上させるために少し高速化できますか?

4

1 に答える 1

1

すでに正しく指摘しているように、これはDOMツリーに関するものではなく、オブジェクト参照とガベージコレクターに関するものです。

ベースオブジェクトをingしてクラスを削除/削除するnullと、すべての最新のコレクターがあなたの面倒を見てくれます。ノードをDOMに挿入することさえしないことで、隠された参照も恐れる必要はありません。何人かの人が明示的に<canvas>参照を設定しているのを見たことがありますnullが、これは純粋なIE8パラノイアだと思います。

于 2012-05-25T10:10:49.753 に答える