2014-10-09 45 views
0

非常多,我的问题很简单,在发布之前我确实搜索过类似的问题。我想知道如何让Javascript代码在页面打开的时候重复执行,而不是代码运行一次,完成或只响应事件处理程序。我非常想要的JavaScript的equivilant:查看Javascript条件每帧

$(document).ready(function() { 

}); 

但我不想使用jQuery,因为它是低效率的。我想检查一个===条件每一帧。

+0

查找的setInterval()内 – jollarvia 2014-10-09 02:39:51

+0

谢谢!你能否给我一个快速的代码示例,说明如何将其实际结合到我想要的结果中? – turkey3 2014-10-09 02:41:09

+1

*而不是代码运行一次,完成或只响应事件处理程序*这是你应该(必须)做的。如果您的代码不间断运行,那么该页面将冻结。如果你使用'setInterval'循环,那么它对于任何问题都不是一个有效的方法。我不知道你在这里做什么,但是每当你尝试重复执行相同的代码时,效率就会不高(说jQuery通常比你编写的代码更高效)。 – 2014-10-09 02:56:34

回答

-1
setInterval(function(){ 
    var blah = whatever; 
    if (done){ 
     clearInterval(); 
    } 
},time_in_milliseconds); 

循环保持你的每毫秒的说法循环。如果你想要一个比毫秒更细的循环或者像计算机那样难以做到的话,那么只需要一个常规while(true){}就足够了。

+0

酷!我将用它来检查循环中的许多元素的onClick处理程序。最后一个问题:假设帧速率为每秒60帧,每秒恰好60帧,那么运行它的最佳选择是什么?我猜测大约16.6毫秒我设置它?但是我希望每一帧检查条件,那么10毫秒就足够了? – turkey3 2014-10-09 02:52:36

+0

time_in_milliseconds = 1000; //每秒; time_in_milliseconds/= 60; – jollarvia 2014-10-09 02:54:54

+0

setInterval是非阻塞的,就像上面提到的derek一样,如果你想要做一些类似游戏的事情,这将是一条路 – jollarvia 2014-10-09 02:58:17

2

使用的setInterval ..一个在window.onload功能

 window.onload = function() {    
function test() { 
    alert("test"); 
} 
setInterval(test, time_miliseconds); 

}