在我当前的项目中,主网页在另一个窗口上打开一个新页面(子)。我正在使用chrome,两个窗口应该在不同的线程上运行,对吧?
在孩子中,它在主页面中保存一个对象。当子窗口中的javascript调用主页面对象的功能时,主页面被阻止。看起来在调用主页面函数时,它发生在主页面线程上。 javascript是在单个线程上运行的吗?有人可以帮助理解。
谢谢!
答案 0 :(得分:3)
根据此说明,默认情况下,每个选项卡都会运行一个单独的进程
http://blog.marcchung.com/2008/09/05/chromes-process-model-explained.html
...除了两个标签中的两个页面相互调用(例如弹出窗口)之外。
在这种情况下,他们共享一个渲染器进程(该模型称为" Process-as-site-instance")
如果网页弹出另一个网页(通过JavaScript),则会将这些网站视为已连接,并由同一进程管理。 Chrome使用单个渲染器流程来处理浏览上下文。