2

在我最近从事的一个项目(BackboneJS 单页 web 应用程序)中,我遇到了奇怪的行为,可能是由于僵尸处理程序和一些陈旧的元素异常(僵尸 DOM 元素)。我想知道是否有任何方法可以轻松检测到这些错误中的任何一个?

我现在更喜欢在 NodeJS 平台上开发。所以 Mocha 和 ZombieJS 用于测试,Express/Mongoose/Backbone(如果重要的话)


更新

@DerickBailey:我想知道是否有任何自动化工具可用于检测此类问题?目前,我只有在遇到问题时才找到它们。我正在寻找可以检测到此类问题的东西,如果可能的话,无需我的干预,例如。如果我需要写一个测试,我可能会错过一些东西。也就是说,如果可能的话

4

2 回答 2

1

我没有使用它,但是从 Google 发现了这个项目-leak-finder-for-javascript

希望能帮助到你!

于 2012-08-09T02:19:55.767 回答
0

我能想到的唯一真正的选择是将 addEventListener 和 removeEventListener 存储到 Window.prototype 的其他属性中(我只是假设这是所有其他 add/removeEventListener 继承的地方),然后覆盖原件,以便您可以将 ID 附加到事件绑定元素用于跟踪已删除或尚未删除的内容,并将 eventListener 参数传递给您的替代品,并在您执行 id 附加/分离/跟踪 voodoo 之后传递 args 并触发您的替代品。

我不建议在生产中以这种方式保留 add 和 removeEventListener 。使其成为某种调试模式的一部分。

于 2012-08-09T02:37:47.927 回答