如何确保调用Callback.dispose?

时间:2013-02-05 19:00:52

标签: dart

我正在查看js-interop库(http://www.dartlang.org/articles/js-dart-interop/)和(http://dart-lang.github.com/js-interop/docs/js/Callback.html)。我想使用new Callback.many设置多次火回调。它说我必须确保调用dispose()否则我可能会出现内存泄漏。什么是确保在我的页面被卸载时调用dispose()的最佳方法?

1 个答案:

答案 0 :(得分:1)

当你的页面卸载时,你并不需要明确地处理Callback。浏览器应该将它们清理为页面中使用的其他javascript变量。

当您知道不再使用dispose()时,应使用

Callback。这就像删除未使用对象的引用,以允许它被垃圾收集。

从技术上讲,所有回调都在Map中引用,以允许js和dart之间的通信。因此,即使您的代码没有继续引用回调,它也不会被垃圾回收。调用dispose()将删除该引用并使回调可以自由地进行垃圾回收。