javascript - While 循环在 Google Chrome 控制台中不断崩溃

标签 javascript google-chrome

我有一个问题!

我想检测网站上的某些内容,但每次我使用 while 循环尝试此操作时,选项卡都会卡住。我试图让 while 循环变慢,但选项卡每次都会卡住。它是 Google Chrome 的客户端脚本,仅用于检测 4 种状态之一。各州的时代不同。你能帮我吗?

*抱歉我的英语不好,而且对脚本/编程了解不多:)

没有计时的默认代码:

while (running) {
fullStatus = checkStatus()
switch (fullStatus.substring(0, 2)) {
  case "**":
    rolled = true;
    status = 1;
    console.log("Rolling")
    break;

  case "Ro":
    status = 2;
    console.log("Prepare Bets")
    break;

  case "CS":
    status = 3;
    console.log("NumberGot")
    break;

  case "Co":
    status = 4;
    console.log("Confirming")
    break;

  default:
    status = 0;
    break;
}   

最佳答案

在某些时候,您必须将 running 设置为 false 才能让 while 循环结束。

否则循环将继续运行并且浏览器会卡住。

请注意,break; 退出 switch 语句,而不是 while 循环。

<小时/>

请注意,当代码执行正在进行时,浏览器没有响应

如果 while 循环的终止取决于用户交互,那么您的代码将永远无法工作(因为用户无法交互,因为代码执行被困在 while 循环内)。

我只是猜测你想要实现什么......

如果您必须在用户在页面上操作时检查状态,那么您需要一个在用户迭代时调用的回调函数,而不是 while 循环(例如单击按钮)或由计时器触发(请参阅 setTimeout())

我不会进一步讨论,因为这超出了问题的范围;我希望我为您指明了正确的方向。

关于javascript - While 循环在 Google Chrome 控制台中不断崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43390164/

相关文章:

jquery - 由于目标被视为被动,无法阻止被动事件监听器中的默认设置?为什么滚动时出现此错误?

html - 播放 HTML5 视频时防止 Chrome 卡住

javascript - 使用 Yeoman angular-fullstack Gruntfile.js 设置 compass

javascript - Angular 多重嵌套 Controller

javascript - 如何将嵌套数组转换为逗号分隔的字符串

javascript - 将父属性传递给子元素reactjs

javascript - m3u8 中的 htm5 视频 src 无法在 Chrome 中播放

google-chrome - 来自 GPSD 的地理位置

azure - Chrome 已开始阻止 azure blob 存储下载

javascript - 是否有与 Ruby 的 andand 等效的 Javascript?