常量setInterval如何影响页面功能(是否会减慢响应时间,或者损害用户命令等)?

时间:2012-11-12 00:40:58

标签: javascript setinterval

我有一个运行onload的setInterval函数,用户在我的网站上的整个时间。基本上它所做的是逐步扫描window.innerWidth和window.outerWidth之间的差异(也就是它检测用户是否正在以100%缩放以外的任何其他方式查看网站),并补偿它,因为我需要一个固定的对象缩小时居中对齐,但放大时左对齐。现在该功能每250毫秒运行一次。我要问的是,如果有的话,这对网页有何影响?

3 个答案:

答案 0 :(得分:3)

您应该阅读一篇名为How JavaScript Timers Work的文章。基本上,所有js代码都在一个事件循环中运行,并且所有事件处理程序都排队,并尽快执行

  

为了理解定时器如何在内部工作,有一个   需要探索的重要概念:定时器延迟不是   保证。由于浏览器中的所有JavaScript都在单个上执行   线程异步事件(例如鼠标点击和计时器)只是   在执行中有一个开放时运行。

有时甚至可能无法执行定时器处理程序;有时超时超时两次,但解释器只有一次运行处理程序,丢弃其他排队事件。

真的,阅读那篇文章,这是值得的。

答案 1 :(得分:1)

如果你每四分之一只运行它,它“不应该”产生太大的影响。我说不应该因为我不确切地知道它是做什么来a)决定是否需要调整和b)进行调整。

那就是说,这听起来像是为事件而不是民意调查的情况。也许你应该看看window.onresize

答案 2 :(得分:0)

如果 your other questions 中的某些回复充分回答了您的问题,那么您应该接受它们作为礼貌的模态回答。

此外,您的setInterval以250毫秒的间隔运行。如果您的功能需要超过250毫秒才能完成执行,那么它可能会导致它们一个接一个地连续运行,从而减慢用户的计算机速度。

更好的方法是由@ ime-vidas给出的,它将你的函数排队在前一个函数结束后运行延迟。