[英]Javascript - Pausing and continuing requestAnimationFrame loop
[英]Pausing during a loop in JavaScript
我想知道如果让循环每秒暂停一次,然后继续计算我拥有的“糖果”数量,该如何做。
编辑:我想暂停一下,以便使我所拥有的糖果量每秒增加1。当前显示开始显示1到10。我试图复制在这里完成的效果(我对JavaScript非常陌生): http://candies.aniwey.net/
//booleans
var count = new Boolean;
count = true;
//integers
var candy = 0;
//strings
var txt = "You have ";
var txt1 = " candies.";
var br = "<br>";
//loops
while (candy <= 10) {
if (candy == 0) {
document.write(txt + candy + txt1);
document.write(br);
candy++;
} else if (candy == 1) {
document.write(txt + candy + " candy.");
document.write(br);
candy++;
} else {
document.write(txt + candy + txt1);
document.write(br);
candy++;
}
}
代替循环,使用window.setInterval()
:
var candy = 0;
window.setInterval(function() {
document.write("You have " + ++candy + " candy.<br/>");
}, 1000);
使用setTimeout
调用函数( jsfiddle )
var candy = 0;
function moreCandy() {
document.getElementById('textHere').innerHTML += 'You have ' + candy +
(candy == 1 ? ' candy' : ' candies') + '<br />';
candy++;
if (candy <= 10) {
setTimeout(moreCandy, 1000);
}
}
moreCandy();
或交替
for (var i = 0; i <= 10; i++) {
setTimeout(getCandy(i), i * 1000);
}
function getCandy(amount) {
return function () {
document.getElementById('textHere').innerHTML +=
'You have ' + amount +
(amount == 1 ? ' candy' : ' candies') + '<br />';
};
}
JavaScript执行不能暂停。 您将需要重构此代码以改为基于计时器来调用函数。
顺便说一句-永远不要永远不要使用document.write。 使用DOM方法,例如.innerHTML。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.