大量にDOM操作(追加削除変更)をしていて、そのDOMのイベントを監視している場合は確実にイベントの監視を解除する
キの字だけど、最近イベントの監視を解除し忘れていたのが原因で、メモリリークを起こしてブラウザをクラッシュさせるという事案があったので。
View.render = function() { this.$someElem = $('<div class="someView"></div>'); this.$someElem.on('click', function() { ... }); this.@$el.append(this.$someElem); }; View.destroy = function() { this.@$someElem.remove(); // ノードを削除するときにイベントを削除していない };
こういうのを連続的に大量に行ったりしていると、メモリリークを起こすので、ノードを削除するときは必ずイベントの監視を解除する。
View.destroy = function() { this.@$someElem.off().remove(); // ノードを削除するときにイベントを削除するようにした };
追記
jQueryのremove()はoff()も一緒にやってるから、問題はここではなかったようです。