JavaScript setInterval函数:bug还是不行?

时间:2015-03-02 14:46:02

标签: javascript setinterval

这是我目前的代码:

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函数中的可修复错误吗?

1 个答案:

答案 0 :(得分:0)

您每秒都会拨打streetIntervalEvent

每次拨打streetIntervalEvent,您每10秒就有10%的机会拨打function(){var richPersonOnStree...

10分钟后,您将有大约60个间隔,每5秒调用一次内部函数。

最终你会有一个无限的数字(除了浏览器会先崩溃)。


这可能是可以修复的,但我不知道你是尝试首先实现的目标。