3

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()ページがアンロードされたときに確実に呼び出されるようにするための最良の方法は何ですか?

4

1 に答える 1

1

ページがアンロードされたときに、コールバックを明示的に破棄する必要はありません。ブラウザは、ページで使用されている他のjavascript変数としてそれらをクリーンアップする必要があります。

コールバックが使用されなくなることがわかっている場合は、dispose()を使用する必要があります。これは、未使用のオブジェクトの参照を削除して、ガベージコレクションできるようにするようなものです。

技術的には、jsとdart間の通信を可能にするために、すべてのコールバックがマップで参照されます。したがって、コードがコールバックで参照を保持していなくても、ガベージコレクションは行われません。呼び出すdispose()と、その参照が削除され、コールバックがガベージコレクションされるようになります。

于 2013-02-05T20:39:38.930 に答える