什么是更好,更有效的方法来阻止功能?

时间:2016-09-11 23:28:31

标签: javascript performance setinterval

var x = 2;

setInterval(function() {
    while(z){}; //do nothing if z = 1, therefor stalling and blocking the next steps:
    change(x++);
    if (x > 39) x = 1;
}, 7000);

程序中的其他位置:按下按钮暂停按钮,将z切换(xor-ing)为1或0以阻止间隔功能。否则,如果z == 0,请跳过此步骤。

我知道有很多原因,这是低效和糟糕的编程,可能会导致JS出现问题,但想做一些能完成同样事情的事情。我是一个强大的C程序员,但javascript对我来说是全新的,我的C方法似乎都不在我的javascript能力范围内。我基本上试图在按下暂停按钮时暂停间隔功能。

编辑:change()函数很长并且并不重要,它可以是一组任意指令,感谢您的回复

1 个答案:

答案 0 :(得分:-1)

最好存储间隔ID

var x = 2;

var intervalID = setInterval(function() {
    change(x++);
    if (x > 39) x = 1;
}, 1000);

当按下暂停按钮时 - 使用clearInterval实现暂停

clearInterval(intervalID);

https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/clearInterval