【发布时间】:2015-03-21 22:15:11
【问题描述】:
今天我在他的 Raspberry Pi 上观看了我的一位同事用 Python 编写的一个小游戏。游戏引擎使用while(true) 或无限循环运行。我自己在 PHP 中使用了一个使用 while(true) 的 websocket 程序。在这些示例中,使用了无限 while 循环,它不会导致程序无响应。没有它,它将无法正常工作。然而,在 JavaScript 中,我们需要不惜一切代价避免无限循环。当循环变得无限时,浏览器会挂起并变得无响应。
我的问题:在编译的Python程序中运行的无限循环和用编写的无限循环有什么区别JavaScript 在浏览器中运行?
【问题讨论】:
-
没有。都阻塞了当前线程。
-
@Haketo 然后 python 循环可能会更新 UI,JS-Code 不会调用浏览器的渲染命令。
-
@Sebb 你的意思是重新绘制?,因为如果在 python 中你没有控制 UI 它应该是相同的结果
-
@Haketo 在某种程度上。当你制作一个游戏时,你通常把它放在一个循环中,第一次调用进入游戏逻辑来更新位置、玩家健康、猫数等等。之后,您调用渲染方法,以便将更新的内容作为图片处理并发送到屏幕。然后你重新开始。在 JavaScript 中,您省略了对渲染函数的调用,因此浏览器的 UI 永远不会更新。
-
Python 可以让你编写多线程代码不是吗? JavaScript 没有(通过网络工作者除外)。
标签: javascript while-loop infinite-loop