0
我參與了Firefox擴展的開發。我們的擴展很複雜,我們在永久殭屍隔間方面存在問題。 Mozilla Zombie compartments page只給出一般信息,只介紹問題和測試方法。因此,我想問一下,如果有人知道常見的瓶頸和有問題的設計模式(或簡單地說,已知的錯誤和失敗)以及如何處理它們的最佳實踐。Firefox擴展中的殭屍隔間
補充:這是good link擴展中的內存泄漏的常見原因。還有其他建議嗎?
我參與了Firefox擴展的開發。我們的擴展很複雜,我們在永久殭屍隔間方面存在問題。 Mozilla Zombie compartments page只給出一般信息,只介紹問題和測試方法。因此,我想問一下,如果有人知道常見的瓶頸和有問題的設計模式(或簡單地說,已知的錯誤和失敗)以及如何處理它們的最佳實踐。Firefox擴展中的殭屍隔間
補充:這是good link擴展中的內存泄漏的常見原因。還有其他建議嗎?
最常見的故障模式是長時間存儲對網頁的引用。這可能是由於以下幾個原因而發生的:
基本上,任何時候你使用網頁中的某些東西時,確保你永遠不會把它分配給任何非var局部變量聲明,並且你不會創建新的長效函數關閉超過它。這兩件事情將有助於大部分案件。
請注意,這些都不是特定於Firefox擴展;它適用於JavaScript中的所有編碼...
是的,這些都是非常通用的提示。對於通用技巧,我們在Mozilla上有很好的[在JavaScript中使用XPCOM而不泄漏](https://developer.mozilla.org/en/Using_XPCOM_in_JavaScript_without_leaking)頁面。從經驗中得到更具體的東西? – gakhov 2012-04-05 10:22:59
這些實際上是非常具體的。 「忘記var」位是我見過的人最常見的錯誤之一。使用嚴格模式可能是避免這種缺陷的最簡單方法。 – 2012-04-05 14:23:32
由於每個嚴重的擴展使用「嚴格」模式,這並不是真正的陷阱。我在一些棘手的情況下很有趣 – gakhov 2012-04-05 16:58:42