javascript程序停止为大值工作

时间:2017-02-18 06:43:51

标签: javascript

/\.(.*)\\/

正如你所看到的,num从10开始,直到2000万。但是,这个程序在我的电脑上不起作用。运行此代码几秒后,我的计算机就冻结了。 2000万是非常大的价值,javascript无法处理或他们是浏览器内存问题,我不知道。如果我在c中运行相同的逻辑,它确实有效。这有什么问题?

<script>
  var num=10;

  while(num<=20000000){
    document.write(num+'<br/>');
    num++;
  }
</script>

1 个答案:

答案 0 :(得分:2)

这里的真正瓶颈是浏览器渲染。不要忘记你要向DOM添加大量数据,而这些数据都必须处理。

如果您只想尝试循环并在Javascript中玩游戏,可能更好的选择是使用NodeJS,您可以在浏览器环境之外运行程序

&#13;
&#13;
var timerLabel = 'running_loop';
function loop() {
  var num = 5;
  while (++num < 20000000) {
  }
}

// starts a timer
console.time(timerLabel);
loop();
// marks in ms how long the operation took
console.timeEnd(timerLabel);
&#13;
&#13;
&#13;