如何比javascript中的短setTimeout更快



如何使脚本重复它的速度比setTimeout允许的要快,但仍然没有尽可能快?

查看此演示以获取2个示例。(我也在下面发布演示代码)

var x = 0;
var divEl = document.getElementById('counter');
var divEl2 = document.getElementById('counter2');
document.getElementById('gosettimeout').addEventListener('click', go, false);
document.getElementById('gotoofast').addEventListener('click', go2, false);
function go() {
    x++;
    divEl.innerHTML = x;
    if (x > 100) {
        return false;
    }
    setTimeout(function () {
        go();
    }, 0);
}
function go2() {
    x++;
    divEl2.innerHTML = x;
    if (x > 100) {
        return false;
    }
    go2();
}
var x = 0;
var divEl = document.getElementById('counter');
var divEl2 = document.getElementById('counter2');
document.getElementById('gosettimeout').addEventListener('click', go, false);
document.getElementById('gotoofast').addEventListener('click', go2, false);
function go() {
    x++;
    divEl.innerHTML = x;
    if (x > 100) {
        return false;
    }
    if (x % 2 == 0) {
     setTimeout(function () {
         go();
     }, 0);
    } else {
     go();
    }
}
function go2() {
    x++;
    divEl2.innerHTML = x;
    if (x > 100) {
        return false;
    }
    go2();
}

速度快两倍,但没有尽可能快=)

var x = 0;
var divEl = document.getElementById('counter');
var divEl2 = document.getElementById('counter2');
document.getElementById('gosettimeout').addEventListener('click', go, false);
document.getElementById('gotoofast').addEventListener('click', go2, false);
function go() {
    divEl.innerHTML = ++x;
    if (x > 100) {
        return false;
    }
    if (x % 5 == 0) {
     setTimeout(function () {
         go();
     }, 0);
    } else {
     go();
    }
}
function go2() {
    x++;
    divEl2.innerHTML = x;
    if (x > 100) {
        return false;
    }
    go2();
}

相关内容

  • 没有找到相关文章

最新更新