javascript - setIntervalle
阿神
阿神 2017-06-12 09:24:04
0
2
719

Le temps d'exécution de ce code sur un navigateur Windows est très différent de celui d'exécution de ce code sur un Mac.
Cette méthode effectue une sortie toutes les 1 ms. Pourquoi y a-t-il des différences entre Windows et Mac ? C'est évidemment plus lent sur Mac.

var time =0;
var interval = setInterval(function(){
    time++;
    console.log("time="+time);
    if(time===100){
        clearInterval(interval);
    }
},1);
阿神
阿神

闭关修行中......

répondre à tous(2)
女神的闺蜜爱上我

Oui, souvent, settimeout et setinterval ne sont pas particulièrement précis. La raison en est que js est à thread unique

.

La fonction de rappel de setInterval n'est pas exécutée immédiatement après le délai d'attente, mais sera exécutée une fois que les ressources informatiques du système seront inactives

Le prochain temps de déclenchement ne démarrera pas tant que la fonction de rappel setInterval n'est pas exécutée

Donc, si le calcul effectué dans setInterval prend trop de temps

Ou si d'autres tâches fastidieuses sont en cours d'exécution, le timing de setInterval deviendra de plus en plus imprécis et le retard sera important.

学霸

Laissez-moi vous donner un exemple simple :

<script type="text/javascript">
        setTimeout(function(){
            console.log('a');
        } , 0);
        console.log('b');
</script>

Devinez qui l'exécutera en premier ? Même si nous disons js是单线程的,但是浏览器是可以控制多线程的,当我们设置setTimeOut的时候,其实浏览器会调用一个线程,而这个线程就叫做Event Loop,让这个线程帮我们去执行,而主线程则继续执行下面的代码,这也就是我们经常会说到的异步模式.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal