Backbone.js で、10K の写真にスケーリングするためのシングル ページ アプリを構築しています。Chrome の制限をテストして、この webkit のバグに遭遇するかどうかを確認しようとしています:
instanceof Backbone.View を使用して DOM ツリーに JPG をロードし、DOM ツリーに次のように呼び出して削除します。
// myThmbnailView instanceof Backbone.View
myThumbnailView.undelegateEvents();
myThumbnailView.remove();
ThumbnailView にはイベント ハンドラーが宣言されておらず、すべてが親の GalleryView に委任されます。
ChromeDevTools のタイムラインによると、ページに 1000 個の DOM ノードがあります (各 ThumbnailView には 20 個の DOM 要素が含まれています) が、サムネイルを繰り返し処理して削除しても解放されません。ここにスナップショットがあります
ページからすべての DOM 要素を削除するための の最後の呼び出しでは$("body").children().remove()
、タイムラインによると 18K の DOM ノードが残っています。ただし、GC はかなりのメモリを解放するようです。
孤立したノードがありますか、それともタイムラインのバグですか? この問題へのアプローチは間違っていますか?