0

嗨,我不确定从哪里开始,因为事件及其处理程序是我在编程中的弱点。...

setInterval(function(){
   //code goes here
},1000);

正如我们所知,这在无限/循环中运行

我的问题是,如果函数内的代码需要超过一秒(例如:5 秒)才能完成,那么第 2、3 和第 n 秒的时间间隔是否会导致脚本运行缓慢。

以及上述内容:当您单击具有 onclick 功能的元素时,它不会运行,直到它的范围转弯...

有没有办法让第一个间隔完成然后如果范围为 0 则再次运行它...

换句话说,将用户的操作作为优先事项。

我不知道我是否说得很有道理,但请在下面发表评论,我会尝试解释更多。

4

2 回答 2

0

setInterval无论内部代码需要多长时间,都将以定义的间隔运行循环的新迭代。这是使浏览器陷入困境/锁定的好方法。

您可以通过多种方式处理此问题,具体取决于您要查找的事件以及您希望它如何流动。

如果您主要使用 jQuery,则一种选择是使用 jQuery 的 queue() 方法在其余代码完成后让您的函数递归调用自身。在简单的情况下可能有效。

如果您的代码确实更依赖于用户,那么当用户采取该操作时,不要只使用 jQuery 的众多事件处理程序之一,如 click() 或 bind() 来触发代码。

没有更多信息,很难为您提供具体的解决方案。

于 2010-01-12T21:38:44.527 回答
0

http://www.w3schools.com/js/js_timing.asp

scroll@ Infinite Loop explains how to cancel it out or wait for it to finish before it runs again...

于 2010-01-12T22:02:53.807 回答