9

私は単一ページの Web アプリを作成するためにBackbonejsandを使用しています。Requirejs私のアプリにはmemory leaks.

テスト用に、サンプル コードを作成しました。ビュー オブジェクトを作成し、その関数を呼び出して、返されたrenderを にアタッチします。 返されるには. ボタンをクリックすると、ビューが破棄される場所でその呼び出しが機能します。htmlDOM
htmlbuttoncallbackdestroy

ただし、実行すると、まだぶらぶらしているchrome heap profilierことがわかります。detached DOM treeそれを深く見ると、referencesによって保持されていることがわかりjQueryます。

これがメモリリークかどうかは疑問です。はいの場合、mycode は参照を保持していません。それで問題はありjQueryますか?

ここにサンプルコードへのリンクがあります。
ヒープ スナップショットのスクリーン ショットも添付しました。

ヒープ スナップショット 1

ヒープ スナップショット 2

切り離された DOM 要素のリファレンス

4

2 に答える 2

1

バックボーンを使用して構築されたアプリケーションでは、孤立したビューが原因でメモリ リークが発生することがよくあります。私は自分のビューを管理する marionette を使用してこれに対処します。バックボーンは、実際にはフレームワークが開発されるツールキットであるため、直接使用することは一般的なアプローチではありません。

于 2013-06-08T01:11:58.850 に答える