我如何让这个 javascript 每秒运行一次?
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/5638783/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
How do i get this javascript to run every second?
提问by user663049
Sorry i'm abit of a noob I just want to know how i get this javascript to run every second?
抱歉,我是个菜鸟,我只想知道如何让这个 javascript 每秒运行一次?
source code:
源代码:
<script type="text/javascript">
$(function() {
//More Button
$('.more').live("click",function() {
var ID = $(this).attr("id");
if(ID) {
$("#more"+ID).html('<img src="moreajax.gif" />');
$.ajax({
type: "POST",
url: "ajax_more.php",
data: "lastmsg="+ ID,
cache: false,
success: function(html){
$("ol#updates").prepend(html);
$("#more"+ID).remove();
}
});
} else {
$(".morebox").html('no posts to display');
}
return false;
});
});
</script>
回答by Mike Lewis
Use setInterval()to run a piece of code every x milliseconds.
使用setInterval()每 x 毫秒运行一段代码。
You can wrap the code you want to run every second in a function called runFunction
.
您可以将要每秒运行的代码封装在一个名为 的函数中runFunction
。
So it would be:
所以它会是:
var t=setInterval(runFunction,1000);
And to stop it, you can run:
要阻止它,您可以运行:
clearInterval(t);
回答by Town
Use setInterval
:
使用setInterval
:
$(function(){
setInterval(oneSecondFunction, 1000);
});
function oneSecondFunction() {
// stuff you want to do every second
}
Here's an articleon the difference between setTimeout
and setInterval
. Both will provide the functionality you need, they just require different implementations.
下面是文章上的区别setTimeout
和setInterval
。两者都将提供您需要的功能,它们只需要不同的实现。
回答by Vismari
You can use setTimeout to run the function/command once or setInterval to run the function/command at specified intervals.
您可以使用 setTimeout 运行一次函数/命令或使用 setInterval 以指定的时间间隔运行函数/命令。
var a = setTimeout("alert('run just one time')",500);
var b = setInterval("alert('run each 3 seconds')",3000);
//To abort the interval you can use this:
clearInterval(b);
回答by Stephen P
Use setInterval(func, delay)to run the func
every delay
milliseconds.
使用setInterval(func, delay)func
每delay
毫秒运行一次。
setTimeout()
runs your function onceafter delay
milliseconds -- it does not run it repeatedly. A common strategy is to run your code with setTimeout and call setTimeout again at the end of your code.
setTimeout()
在几毫秒后运行一次你的函数delay
——它不会重复运行它。一个常见的策略是使用 setTimeout 运行您的代码并在您的代码结束时再次调用 setTimeout。
回答by Christopher Armstrong
You can use setInterval
:
您可以使用setInterval
:
var timer = setInterval( myFunction, 1000);
Just declare your function as myFunction or some other name, and then don't bind it to $('.more')
's live event.
只需将您的函数声明为 myFunction 或其他名称,然后不要将其绑定到$('.more')
的实时事件。
回答by Nitin Midha
window.setTimeout(func,1000);
This will run func after 1000 milliseconds. So at the end of func you can call window.setTimeout again to go in a loop of 1 sec. You just need to define a terminate condition.
这将在 1000 毫秒后运行 func。因此,在 func 结束时,您可以再次调用 window.setTimeout 以进入 1 秒的循环。您只需要定义一个终止条件。