Javascript没有可见的线程(但是 – 工作线程即将到来,请参阅
JavaScript and Threads中的更多信息).
但是,它似乎确实有多个执行上下文似乎同时存在 – 独立,当您有多个Firefox Windows和多个Firefox / IE选项卡时.
如果页面上有多个iframe,则每个iframe都有自己的执行上下文,但它们具有共享数据.如果两个iframe位于同一个域中,则它们可以访问彼此的DOM并调用彼此的函数.尽管如此,我在Google上找不到调度模型的描述,即是否:
> parallel / preemptive,在这种情况下 – 你可以暂时暂停吗?任何形式的互斥?
>合作,在这种情况下 – 如何屈服于另一个背景?
>非重叠 – 即,主框架中的事件处理程序必须在iframe中的事件处理程序被调用之前返回(反之亦然)?
所以问题是:
>是否有保证的上下文切换模型?
>如果不是,那么主流的上下文切换模型是什么?
>似乎Firefox和IE在同一个选项卡上下文之间有一个不重叠的时间表,并且在同一个进程中的不同选项卡/窗口之间合作 – 但我不确定.
> Chrome将系统调度程序用于不同的选项卡(可能使用多个核心,这些核心位于并行/抢占组中,但我不知道它在同一选项卡中用于多个帧的内容.
>我不知道Safari或Opera.
谢谢!