【发布时间】:2010-05-06 23:58:38
【问题描述】:
注意:这是关于 Firefox 扩展的问题,不是 js 一般问题。
在 Firefox 扩展项目中,我需要在每个 Firefox 窗口中只初始化一次我的 javascript 对象。否则,每次我打开我的窗口时,都会使用一个新的计时器,将使用新的属性,所以一切都将从头开始。
希望下面的例子能揭开我的问题的神秘面纱:)
var StupidExtension
{
statusBarValue: "Not Initialized Yet",
startup: function ()
{
...
// Show statusBarValue in Status Bar Panel
},
initTimerToRetrieveStatusBarValueFromNetwork: function ()
{
...
}
}
所以每次按下 Ctrl+N 时,您都会看到“尚未初始化”,然后会触发新的计时器,因此一段时间后它会从网络检索数据,您还会在第二个窗口中看到值,依此类推.理想情况下,只有一个计时器函数运行并更新所有 Firefox 窗口中的所有状态栏面板。
当然我可以做一些缓存,比如将值保存在首选项或其他存储中,然后从那里显示它。但我觉得这是人为的。
那么问题将是在所有 Firefox 窗口实例中是否存在将对象的某些部分设为静态的“本机”技术?
【问题讨论】:
-
“我的 javascript 对象需要在每个 Firefox 窗口中初始化一次。” - 你的意思是所有窗口一次,而不是每个窗口一次。这首先让我感到困惑。
标签: javascript firefox object initialization