如何每隔几秒运行一次,而不会阻止页面的其余部分加载。
function Create() {
var SomeArray = [];
for ( var i=0; i<=1 ; i ++) {
SomeArray[i] = (Math.random() * 10) + 1;
//alert(arr[0]);
}
return SomeArray;
}
var x = Create();
alert(x[0] + x[1]);
我正在尝试这个var timer = setInterval(Create,5000);它可以防止加载页面的其余部分。 我希望每隔几秒就能得到新的值
答案 0 :(得分:1)
一个基本的例子是:
var counter = 0;
var timerRef;
var increment = function() {
counter += 1;
console.log(counter);
timerRef = setTimeout(increment, 1000);
}
setTimeout(increment, 1000);
// clearTimeout(timerRef);
请避免document.write
参考screencast了解更多详情。
答案 1 :(得分:0)
setInterval()
可以配置为在您请求的任何时间间隔重复调用您指定的任何函数。但是,您无法从该函数检索返回值。相反,您需要在传递给setInterval()
的回调中处理结果,或者调用其他函数并传递在回调中生成的结果。这就是异步函数在JavaScript中的工作方式。我在下面提供了几个您的选项示例:
如果你只想每5秒生成1到10(含)之间的两个随机十进制值,你可以这样做:
var interval = setInterval(function() {
var rand1 = (Math.random() * 10) + 1;
var rand2 = (Math.random() * 10) + 1;
// now insert code here to do something with the two random numbers
}, 5000);
如果你想随机值是整数(这是更常见的),那么你会这样做:
var interval = setInterval(function() {
var rand1 = Math.floor(Math.random() * 10) + 1;
var rand2 = Math.floor(Math.random() * 10) + 1;
// now insert code here to do something with the two random numbers
}, 5000);
如果你想调用一个函数并将这两个随机数传递给它,你可以这样做:
function processRandoms(r1, r2) {
// code here to do something with the two random numbers
}
var interval = setInterval(function() {
var rand1 = Math.floor(Math.random() * 10) + 1;
var rand2 = Math.floor(Math.random() * 10) + 1;
processRandoms(rand1, rand2);
}, 5000);
然后您可以随时停止重复间隔:
clearInterval(interval);