延迟关闭窗口的JavaScript代码

4
我正在编写一个谷歌浏览器扩展程序。感谢大家容忍我愚蠢的问题。这个程序很简单,但运行良好。唯一的问题是它运行得太快,导致服务器超载并阻止我的IP地址。因此,它需要一个节流阀。
问题是,使用计时器还是setInterval构建更好。在检查特定页面后,内容脚本会使用self.close()关闭窗口。如果我将其放入setInterval中,我可以延迟页面的关闭,这将使整个过程减慢与间隔长度相同的时间。似乎是一个不错的节流阀。
现在,内容脚本的最后一行只是:
self.close();

我认为,如果我按照以下方式修改代码,就可以得到我想要的延迟时间:
var t=setTimeout("self.close()",2000);

这样行吗?有更好的方法吗?


你试过了吗?它应该可以工作。你遇到了问题吗? - supakeen
2个回答

7

我更愿意使用:

setTimeout(function(){
    self.close();
},2000);

但是你的方法也是有效的...

1

如果页面关闭是等待的适当时间点,那么这是完全可以的。在这种情况下,因为它似乎是一个相关的地方,所以我认为你没问题。虽然我会使用Christophe的建议。

使用setInterval定期运行它们将遇到问题,如果您的处理时间超过间隔-因为这似乎涉及打开和关闭页面,它可能会出现问题。

通常,setInterval适用于定期执行小型进程。在这种情况下,您只想将等待放入处理中,这表明对我来说setTimeout更好。


事实证明,延迟关闭此窗口并不能有效地减缓进程。 - jeromekjerome

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接