在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模块
XUL::Gui
它充当了Perl和Firefox之间的桥梁,我目前正在努力堵住一些与DOM元素相关的内存泄漏,即使它们已经消失,Perl端也不再保留任何引用。所以我在寻找一种方法,要么找出javascript元素何时会被销毁,要么强制javascript清理对象。
如果无法用纯javascript实现这一点,那么可以使用xpconnect/xpcom或任何其他特定于mozilla的技术。