0

我参与了 Firefox 扩展的开发。我们的扩展很复杂,我们遇到了永久性僵尸隔间的问题。Mozilla Zombie 隔间页面仅提供一般信息,仅介绍问题和测试方法。

所以,我想问一下是否有人知道常见的瓶颈和有问题的设计模式(或者简单地说,已知的错误和失败)以及如何处理它们的最佳实践。

补充:这是扩展中内存泄漏的常见原因的一个很好的链接。还有其他建议吗?

4

1 回答 1

2

最常见的故障模式是存储对网页的引用时间过长。这可能有几个原因,我已经看到:

  1. 分配给全局变量。特别是由于忘记了'var'。
  2. 分配给用于存储状态而不清除它的全局变量的成员。
  3. 创建关闭网页对象的新函数对象,然后将这些函数存储在某处(尤其是作为事件侦听器)一段时间。

基本上,无论何时您使用网页中的某些内容,请确保您永远不会将其分配给使用 var 声明的局部变量以外的任何内容,并且您不会创建新的长寿命函数来关闭它。这两件事将对很大一部分案件有所帮助。

请注意,这些都不是特定于 Firefox 扩展的;它适用于 JavaScript 中的所有编码...

于 2012-04-05T04:10:53.063 回答