1

JSによってDOMツリーにない(別の構造に格納されている)html要素を削除するにはどうすればよいですか?

私はオーディオ リクエスト (html5) audio.src="someserver" を作成するプロジェクトを持っています。サーバーは長いポーリングを行い、データをオーディオに送信します。オーディオがそれを再生します。

オーディオが終了すると、ブラウザはオーディオを停止するコマンドを受け取ります。

これらのオーディオ要素は、標準の html/ のような dom 構造ではなく、javascript のハッシュテーブルに格納します。

したがって、親/子の削除は適用されません。

私が知る限り、そのオブジェクトへの参照がない場合のように、これらのオブジェクトをクリーンアップする必要さえありません。(内部的に) 削除する必要があるため、オーディオ要素を NULL に設定するだけで十分です。?

ブラウザでパフォーマンス ヒットが発生していますか?

また、オーディオ リクエストを行うと、他の 4 ~ 5 個の長いポーリング リクエストもあることに注意してください。

4

1 に答える 1

4

DOMノードは他のJSオブジェクトと大差ありません。それらへの参照がない場合は、ガベージコレクションを取得する必要があります。

とはいえ、暗黙の参照があるかもしれません。たとえば、オーディオファイルを再生している場合、プレーヤーを維持するために、ブラウザ自体にそのファイルへの参照がある場合があります。オーディオ要素が完全に停止され、参照が解除されている限り、オーディオ要素は自動的にクリーンアップされます。

私はあなたがこれを考えすぎていると思います。

于 2012-10-31T00:41:43.820 に答える