问题描述
|
我已经在代码中看到了两者,但是我想知道使用dlg.hide()或dlg.destroyRecursive()关闭对话框的首选和更有效的方法是什么?
解决方法
这取决于您是否要重用该对话框。如果重新创建便宜(您定义便宜),请使用,0ѭ。否则,创建一次,然后在需要关闭它时随时创建一次
hide()
。
请记住,dijit会将您创建的所有小部件保留在注册表中。因此,仅让dialog变量超出范围将不会使其成为垃圾可收集的对象,而这可能会导致内存泄漏。
, 我发现,即使对话框似乎被破坏,如果我仅调用dialog.destroyRecursive()
,也无法完全破坏对话框中的小部件。
相反,我必须调用dialog.hide()
,然后在onHide
方法中调用this.destroyRecursive()
。
但是,这会导致另一个无害的错误“exception in animation handler for: onEnd
”。
但是确实确实对话框中的所有小部件都被销毁了。