Firefox扩展中的僵尸隔间
Zombie compartments in Firefox extension
我参与了Firefox扩展的开发。我们的扩展很复杂,而且我们有永久僵尸隔间的问题。Mozilla僵尸隔间页面只提供一般信息,只介绍了问题和测试方法。
因此,我想问是否有人知道常见的瓶颈和有问题的设计模式(或者简单地说,已知的错误和失败)以及如何处理它们的最佳实践。
添加:以下是扩展中内存泄漏的常见原因的良好链接。还有其他建议吗?
最常见的故障模式是存储对网页的引用太长时间。这可能是由于我所看到的几个原因:
- 全局变量的赋值。特别是由于忘记了var
- 分配给用于存储状态的全局变量的成员,然后不清除该全局变量
- 创建关闭网页对象的新函数对象,然后将这些函数存储在某个地方(尤其是作为事件侦听器)一段时间
基本上,任何时候你在处理网页上的东西,都要确保你永远不会把它分配给用var声明的局部变量之外的任何东西,并且你不会创建新的长期函数来关闭它。这两件事在很大程度上有助于解决大部分情况。
请注意,这些都不是Firefox扩展特有的;它适用于JavaScript中的所有编码。。。
相关文章:
- Node.js v6.2.0类扩展不是函数错误
- 扩展移相器按钮类不工作
- chrome扩展中的navigator.geolocation.getCurrentPosition
- chrome扩展:尽管运行了at:documentidle,js脚本还是过早启动
- chrome扩展更改主机/域警告
- TableExport jquery插件:文件名和扩展名问题
- 如何在chrome扩展中重定向到html页面
- Chrome扩展没有't在重新加载之前考虑期权价值
- 扩展SVGTextElement时出现Typescript Uncaught TypeError
- 如何通过自己获得Chrome扩展的用户反馈/错误报告
- Javascript”;类“;带有参数的扩展
- 试图阻止Chrome通过扩展关闭
- 如何在chrome扩展中存储数据/结果,以及如何使用setTimeout使其只被调用一次
- 表达式引擎扩展开发-向呈现的条目添加自定义javascript
- 从选项页面更新chrome扩展清单权限
- 如何将chrome扩展功能移植到移动设备(特别是jquery和trello)
- Chrome扩展:遍历不同的页面并收集数据
- DataTable按下键选择扩展/导航
- 扩展jQuery插件以更改配置
- Firefox扩展中的僵尸隔间