Javascript的“多执行上下文”如何工作?

前端之家收集整理的这篇文章主要介绍了Javascript的“多执行上下文”如何工作?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
Javascript没有可见的线程(但是 – 工作线程即将到来,请参阅 JavaScript and Threads中的更多信息).

但是,它似乎确实有多个执行上下文似乎同时存在 – 独立,当您有多个Firefox Windows和多个Firefox / IE选项卡时.

如果页面上有多个iframe,则每个iframe都有自己的执行上下文,但它们具有共享数据.如果两个iframe位于同一个域中,则它们可以访问彼此的DOM并调用彼此的函数.尽管如此,我在Google上找不到调度模型的描述,即是否:

> parallel / preemptive,在这种情况下 – 你可以暂时暂停吗?任何形式的互斥?
>合作,在这种情况下 – 如何屈服于另一个背景?
>非重叠 – 即,主框架中的事件处理程序必须在iframe中的事件处理程序被调用之前返回(反之亦然)?

所以问题是:

>是否有保证的上下文切换模型?
>如果不是,那么主流的上下文切换模型是什么?

>似乎Firefox和IE在同一个选项卡上下文之间有一个不重叠的时间表,并且在同一个进程中的不同选项卡/窗口之间合作 – 但我不确定.
> Chrome将系统调度程序用于不同的选项卡(可能使用多个核心,这些核心位于并行/抢占组中,但我不知道它在同一选项卡中用于多个帧的内容.
>我不知道Safari或Opera.

谢谢!

解决方法

在Firefox中,网页中的所有JavaScript都在主线程上运行,因此它都是序列化的.每个帧都有自己的 JSContext,每个方法都执行完成.没有先发制人.

猜你在找的JavaScript相关文章