javascript - 使用开始和停止按钮在 javascript 中开始和停止循环

标签 javascript user-interface

<分区>

我有一个开始按钮,单击它会运行一个循环函数。我如何获得 stopBTN.onClick 来停止正在运行的循环?

https://jsfiddle.net/vduxbnkj/

startBTN.onClick = function(){ runLoop(); }

function runLoop(){
    while(condition true){
        getFolderContentsLoop();
    }
}

function getFolderContentsLoop(){
    //loop through folders & files looking for .txt file and if "finished"
      delete files and folders
}

最佳答案

如果您正在运行一个简单的 for (..) 循环,则无法通过外部影响来停止它。在 Javascript 中,一切都发生在同一个线程上,除非您的代码在某个时刻“结束”并将控制权返回给浏览器,一段时间内不会发生任何 UI 交互。实现“循环”的最简单方法是通过 setTimeoutsetInterval:

interval = null;

startBTN.onclick = function () {
    var i = 0;
    interval = setInterval(function () {
        console.log(i++);  // this is inside your loop
    }, 1);
};

stopBTN.onclick = function () {
    clearInterval(interval);
};

关于javascript - 使用开始和停止按钮在 javascript 中开始和停止循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29173956/

相关文章:

java - JTextField 使用不当(可能)帮助创建 GUI

java - 如何使用 JavaFX 消除(或着色)子菜单的边距?

javascript - 您能想出一种方法来对具有该名称的自己的属性的对象调用 hasOwnProperty 吗?

javascript - 如何打印 iframe 谷歌文档查看器打开的文档

.net - "IronPython + .NET"与 "Python + PyQt"。哪个更适合Windows App开发?

java - 关于表/单元格的 Netbeans/Java Swing 问题

user-interface - 带底栏的窗口

javascript - PHP 服务器无法使用 ajax 接收 javascript 对象

javascript - charCodeAt(...) & 0xff 完成了什么?

javascript - 有没有更有效的方法来查找返回对象的子集?