【发布时间】:2014-08-13 07:18:36
【问题描述】:
假设我有一个 CPU 密集型 iframe。
它与父页面在同一个域中,因此不适用跨域,因此它共享父页面的事件循环。
是否可以为 iframe 提供一个单独的 JS 上下文(包括一个单独的事件循环),这样它就不会阻塞父级的 UI?
为iframe 标签设置sandbox 属性并不能解决这个问题,尽管docs 声明iframe 将被视为来自“唯一来源”。
这个问题是假设性/概念性的。我没有一个真正的用例。只是好奇。
我在徘徊像 JSFiddle 这样的网站如何运行用户的代码,并且显然它是从来自不同域的 iframe 运行的(在 JSFiddle 的情况下是 jshell.net)。
【问题讨论】:
-
在子域中运行它?
-
我特意要求同一域中的 iframe
-
我有一个用例,我不希望我的主事件循环被嵌入文档以任何方式阻塞或减慢。现有的解决方法是使用不同的子域,但我想知道是否有任何其他/更好的解决方案。
-
可以使用工作线程吗?
-
@Keimeno,worker 可以与可以访问 DOM 的主进程通信。
标签: javascript iframe sandbox same-origin-policy