【发布时间】:2012-07-26 12:15:02
【问题描述】:
当我在浏览器中打开一个网页时,启动了多少个线程来渲染 DOM 并执行 Javascript 代码?
是否可以使用多线程执行 Javascript 函数?
【问题讨论】:
当我在浏览器中打开一个网页时,启动了多少个线程来渲染 DOM 并执行 Javascript 代码?
是否可以使用多线程执行 Javascript 函数?
【问题讨论】:
您可以在现代浏览器中使用webworkers
【讨论】:
简短的回答是否定的,您不能在 javascript 中运行多线程代码。
更长的答案是你可以模拟它。这个关于 SO 的问题可能会有所帮助:Multithreaded JavaScript how to?
【讨论】:
Javascript 代码在单线程中运行。 您不能启动单独的线程,但您仍然可以使用异步函数来实现,例如 setTimeOut 和 setInterval 。
【讨论】:
一般只有一个 UI 线程,但你可以在 HTML5 中与 WebWorkers 并行运行 JS。
【讨论】:
您可以将 WebWorkers 用于线程,但它不能用于 dom。你也可以尝试通过setInterval模拟它
【讨论】:
人们有时使用的另一个想法是使用 iframe。如果您的应用程序可以建模为一组 iframe(如 facebook),您可以利用它。谷歌浏览器对此进行了高度优化。每帧中的 Javascript 在单独的执行上下文中执行,因此可以并行化。
【讨论】: