繁体   English   中英

如何比javascript中的短setTimeout更快?

[英]How to go faster than a short setTimeout in javascript?

如何使脚本比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();

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM