【问题标题】:How do I write an infinite loop that won't crash my browser? [duplicate]如何编写不会使浏览器崩溃的无限循环? [复制]
【发布时间】:2017-01-30 23:46:02
【问题描述】:

如何在 javascript 中编写一个不会导致浏览器崩溃的无限循环。我在互联网上发现了两件事关于 javascript 中的无限循环...

for(;;){}

还有……

while(true){}

这两个问题都在于我的电脑崩溃了...我以为你可以把...

Loop;

在代码的末尾,它会无限循环代码,但我错了,什么是无限循环代码不会导致浏览器崩溃的正确方法?

【问题讨论】:

  • 你到底想完成什么?
  • setInterval .. ?
  • 你不能。 Javascript 中的无限循环总是会冻结浏览器,因为它会阻止任何其他单线程 Javascript 的执行。你想完成什么?
  • "我在互联网上发现了两件关于 java 无限循环的事情" - 你的意思是 JavaScript 吗?我假设你这样做了,但我不想在没有确认的情况下通过编辑把话放在你的嘴里。
  • 是的...对不起。我就是这个意思。

标签: javascript


【解决方案1】:

如果您需要编写一些需要很长时间(直到并包括“永远”)的 Javascript 代码,您应该将其从主要 Javascript 内容中移出并放入 WebWorker

var myWorker = new Worker('worker.js');

这允许您在 worker.js 中加载脚本并在并行运行的单独上下文中执行它。

如果您只需要运行一次直到用户退出页面(或关闭浏览器),那么只需使用setInterval

var intervalID = window.setInterval(myCallback, 500);

function myCallback() {
  // Your code here
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-31
    相关资源
    最近更新 更多