在我当前的项目中,主网页在另一个窗口上打开了一个新页面(子页面)。我正在使用 chrome,这两个窗口应该在不同的线程上运行,对吗?
在孩子中,它在主页中保存一个对象。当子窗口中的javascript调用主页面对象的函数时,主页面被阻塞。看起来在调用主页函数时,它发生在主页线程上。javascript是否在单个线程上运行?有人可以帮助理解。
谢谢!
在我当前的项目中,主网页在另一个窗口上打开了一个新页面(子页面)。我正在使用 chrome,这两个窗口应该在不同的线程上运行,对吗?
在孩子中,它在主页中保存一个对象。当子窗口中的javascript调用主页面对象的函数时,主页面被阻塞。看起来在调用主页函数时,它发生在主页线程上。javascript是否在单个线程上运行?有人可以帮助理解。
谢谢!
根据这个解释,默认情况下,每个选项卡都运行一个单独的进程
http://blog.marcchung.com/2008/09/05/chromes-process-model-explained.html
...除非两个选项卡中的两个页面相互调用(例如弹出窗口)。
在这种情况下,它们共享一个 Renderer 进程(该模型称为“Process-as-site-instance”)
如果一个网页弹出另一个网页(通过 JavaScript),那么这些站点被认为是连接的,并由相同的过程管理。Chrome 使用单个 Renderer 进程来处理浏览上下文。