作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对此很陌生,并且对垃圾收集对于无需重新启动的插件的确切工作方式感到有点困惑。
从我的关闭函数中,我当前调用所有必须进行清理的对象。他们将任何事件处理程序删除到他们可能设置的外部代码中,然后删除自己的所有属性。
然后我为那里的所有对象调用delete namespace.ObjectA
。命名空间本身是我在 bootstrap.js 中创建的变量。我想知道这是否有必要,或者在调用我的插件的关闭函数后,Firefox 会从 bootstrap.js 中删除所有全局变量,从而删除从我的插件外部无法访问的所有其他对象吗?
显然,如果关闭的原因是 Firefox 应用程序关闭,我不会进行任何清理。
我是否遗漏了清理时应该做的任何事情?
最佳答案
请注意,无需重新启动的插件必须在“禁用”或“卸载”时执行这些操作。
插件必须删除事件监听器和观察者。
删除 namespace 并不重要(也没有完成),它是一个变量,将由 GC 完成。
此外,插件必须恢复(而不是重置)其自身之外的任何已更改的首选项。
正如您所说,通常不需要对 Firefox 应用程序关闭执行任何操作。
引用文献:
关于javascript - 引导插件 : How to do proper cleanup on shutdown?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27746715/
我是一名优秀的程序员,十分优秀!