エレメントがJavaScriptガベージコレクターによってクリーンアップされる直前に呼び出されるメソッドまたはイベントがディスパッチされますか?
Perlでは次のように書きます。
package MyObj;
sub new {bless {}}
sub DESTROY {print "cleaning up @_\n"}
そして後で:
{
my $obj = MyObj->new;
# do something with obj
} # scope ends, and assuming there are no external references to $obj,
# the DESTROY method will be called before the object's memory is freed
私のターゲットプラットフォームはFirefoxです(そして他のブラウザをサポートする必要はありません)ので、これを行うFirefox固有の方法しかない場合は、それで問題ありません。
そして少し背景:私はPerlとFirefoxの間のブリッジとして機能するPerlモジュールXUL :: Guiを書いています、そして私は現在、それらがなくなった後でも、永久に立ち往生しているDOM要素に関連するいくつかのメモリリークを塞ぐことに取り組んでいますPerl側にこれ以上の参照は残りません。そのため、JavaScript要素がいつ破棄されるかを把握する方法、またはJavaScriptにオブジェクトを強制的にクリーンアップさせる方法を探しています。
純粋なJavaScriptでこれを行う方法がない場合は、XPConnect/XPCOMまたはその他のMozilla固有のテクノロジーを使用したソリューションを使用できます。