这是我目前的代码:
var intervalStreet = 1000;
var richPersonOnStreet = false;
var poorPersonOnStreet = false;
function streetIntervalEvent() {
var peopleRandomChance = Math.random();
document.getElementById("number").innerHTML = peopleRandomChance;
if (peopleRandomChance <= 0.1) {
richPersonOnStreet = true;
document.getElementById("streetText").innerHTML = "A rich man is on the street!";
intervalStreet = 5000;
setInterval(function(){var richPersonOnStreet = false; document.getElementById("streetText").innerHTML = "Nothing is happening on the street...";}, 5000);
intervalStreet = 1000;
}
}
setInterval(streetIntervalEvent, intervalStreet);
所有的代码看起来都很精致,但是在我暂停这个程序一段时间后,间隔变得完全搞砸了。试着离开这个地址http://jsfiddle.net/w0gerao3/ 10分钟......你会明白我的意思。
这是setInterval函数中的可修复错误吗?
答案 0 :(得分:0)
您每秒都会拨打streetIntervalEvent
。
每次拨打streetIntervalEvent
,您每10秒就有10%的机会拨打function(){var richPersonOnStree...
。
10分钟后,您将有大约60个间隔,每5秒调用一次内部函数。
最终你会有一个无限的数字(除了浏览器会先崩溃)。
这可能是可以修复的,但我不知道你是尝试首先实现的目标。