2011-05-21 75 views
4

当我开始扩展它查询我的网站的XML文件,一旦它的文件时,它触发关闭一个简单的提示,显示最新的文件已经下载的用户。火狐插件/ JavaScript的setTimeout的问题

问题是因为文件只有几KB它开始加载浏览器之前,它可能发生的“OK”非常快,警报等待被点击。

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

我的问题很简单,保持运行像计时器...是沉重的资源还是会影响到较慢的机器或什么? 在Firefox插件中有30秒太长的时间了?

回答

2

关于计时器,您已经有了一些很好的答案,所以让我们专注于提醒对话框本身。你不应该以这种方式使用警告对话框。用户不喜欢他们。

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

+0

是的,警报可能会令人讨厌,但是对于这一点来说并不陌生,并且不知道有更好的方法来做到这一点,这要归功于你和我现在所做的链接! – Ryan 2011-05-21 10:56:15

+0

无论如何要配置它显示的时间吗? – Ryan 2011-05-21 10:57:59

3

定时器不在资源重,如果明智地使用(即,不旋转起来在1毫秒的时间间隔3000个定时器)。

虽然,人们不禁要问,使用的警报......这似乎并不像它曾经做正确的事。

+0

感谢您的回复!我只有4个定时器发射大约5秒而不是3000! :))不知道比定时器更好的方式,但感谢下面的马克我现在做! – Ryan 2011-05-21 10:54:52

2

计时器在它开始工作之前什么也不做。它只是在计时器队列中。如果周围没有其他定时器(不太可能),则定时器线程甚至不会被唤醒,直到此时间点才会触发。

+0

感谢您的答复和清理! – Ryan 2011-05-21 10:55:17