我正在尝试使用iframe模拟多线程,但我遇到了一种情况,我不知道它是否真的自己使用iframe进程(线程)。
例如,如果我调用一个放在iframe中的方法,它是使用iframe创建的线程运行还是使用主父窗口线程运行?
如果是后者,则可以更改范围,以便iframe调用该方法(以便程序使用与父窗口不同的线程)
编辑: 也许我应该更清楚这一点,但我不想仅仅因为我无法访问DOM元素而使用WebWorkers。
答案 0 :(得分:4)
如果您想运行一些后台任务,请使用WebWorkers。
通常,您不需要多线程js代码。你应该使用事件循环。
答案 1 :(得分:1)
从MDN文档中查看Using web workers。
Worker接口产生真正的操作系统级线程,并发性可以 如果你不小心,会在代码中产生有趣的效果。然而, 在网络工作者的情况下,精心控制的沟通 与其他线程的点意味着它实际上很难导致 并发问题。无法访问非线程安全组件 或DOM,您必须将特定数据传入和传出线程 通过序列化对象。所以你必须努力工作 代码中的问题。
John Resig在2009年就此主题写了Computing with JavaScript Web Workers n。但是,根据When can I use,在IE10之前没有IE支持,因此它可能不适合您的需求。