确保backbonejs应用程序中没有内存泄漏

时间:2012-10-01 02:27:30

标签: javascript dom memory-leaks backbone.js

我有一个使用这样工作的backbonejs应用程序:

[Backbone MODEL] <----> [Backbone VIEW] <----> [DOM ELEMENT]

创建模型和视图并将其分配给函数范围内的局部变量。如果我删除了dom元素(通过在它的父元素上调用jQuery()。empty()),这将删除对View&amp;的所有引用。随后模型避免僵尸对象/内存泄漏?

1 个答案:

答案 0 :(得分:4)

只要你永远不会将模型或视图变量分配给任何会留下来的东西。警惕变量周围的闭包,不要将变量作为任何其他对象的属性附加,不要将视图或模型附加到任何其他对象的任何事件。然后是的,这将使自己清理干净。

但是这些是一些非常严格的规则要遵守并且不适合大多数应用程序。您应该明确地处理事件处理程序的删除,并删除您创建的任何对象上的任何属性。

我有一些与此相关的文章(似乎你已经阅读过至少其中一篇文章了):

经典的僵尸帖子:http://lostechies.com/derickbailey/2011/09/15/zombies-run-managing-page-transitions-in-backbone-apps/

zombie的清理代码的实现,以及更多,作为它自己的对象:http://lostechies.com/derickbailey/2011/12/12/composite-js-apps-regions-and-region-managers/

JavaScript和Backbone中的内存管理:http://lostechies.com/derickbailey/2012/03/19/backbone-js-and-javascript-garbage-collection/