不同浏览器窗口上的javascript代码是否在同一个线程上运行?

时间:2013-06-13 20:36:26

标签: javascript google-chrome browser

在我当前的项目中,主网页在另一个窗口上打开一个新页面(子)。我正在使用chrome,两个窗口应该在不同的线程上运行,对吧?

在孩子中,它在主页面中保存一个对象。当子窗口中的javascript调用主页面对象的功能时,主页面被阻止。看起来在调用主页面函数时,它发生在主页面线程上。 javascript是在单个线程上运行的吗?有人可以帮助理解。

谢谢!

1 个答案:

答案 0 :(得分:3)

根据此说明,默认情况下,每个选项卡都会运行一个单独的进程

http://blog.marcchung.com/2008/09/05/chromes-process-model-explained.html

...除了两个标签中的两个页面相互调用(例如弹出窗口)之外。

在这种情况下,他们共享一个渲染器进程(该模型称为" Process-as-site-instance")

  

如果网页弹出另一个网页(通过JavaScript),则会将这些网站视为已连接,并由同一进程管理。 Chrome使用单个渲染器流程来处理浏览上下文。