FireFox 插件 / javascript setTimeout 问题

FireFox addon / javascript setTimeout question

本文关键字:setTimeout 问题 javascript 插件 FireFox      更新时间:2023-09-26

当我的扩展启动时,它会在我的网站上查询一个xml文件,一旦它得到该文件,它就会触发一个简单的警报,告诉用户最新的文件已经下载。

问题是由于文件只有几kb,它可以非常快地发生,并且警报在开始加载浏览器之前等待单击"ok"。

我通过将警报放在 30 秒的 setTimeout 中来解决此问题,这应该在警报出现之前给浏览器足够的时间来加载(以及开始加载任何保存的选项卡)。

我的问题很简单,让计时器像那样运行......它是资源繁重还是会影响速度较慢的机器或其他任何东西?30 秒是否太长而无法在 Firefox 插件中使用计时器?

如果使用得当,计时器的资源并不繁重(即,不要以 1ms 的间隔旋转 3000 个计时器)。

虽然,人们想知道警报的使用... 这似乎永远不是正确的做法。

您已经对计时器有一些很好的答案,因此让我们专注于警报对话框本身。切勿以这种方式使用警报对话框。用户不太喜欢它们。

相反,请使用弹出式烤面包机警报来告诉用户文件已下载。有关使用弹出警报服务的信息,请参阅此 MDC 文档:
https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsIAlertsService

计时器在触发之前不执行任何操作。 它只是坐在计时器队列中。 如果周围没有其他计时器(不太可能),计时器线程甚至不会唤醒,直到触发此计时器