【发布时间】:2011-02-09 23:27:56
【问题描述】:
只是一个想法,但在DIV 上使用IFRAME 本质上会使该元素与窗口隔离,这样在IFRAME 中运行的慢速脚本不会影响其他框架/窗口?
【问题讨论】:
标签: javascript iframe isolation
只是一个想法,但在DIV 上使用IFRAME 本质上会使该元素与窗口隔离,这样在IFRAME 中运行的慢速脚本不会影响其他框架/窗口?
【问题讨论】:
标签: javascript iframe isolation
是的,对于第一部分,iframe 将“某种程度上”将您的窗口与 iframe 中的脚本隔离开来。但是,仍然可以通过window.parent 访问父窗口。
对于第二部分:不,它不会使 iframe 中的慢脚本不会影响其他框架/窗口。您的主窗口对象及其子节点都在同一个线程中运行。 JavaScript 是单线程的[在这种情况下忽略 webworkers,你不能在它们之间传递 dom 元素],所以你可以访问父窗口/子 iframe 的窗口对象的唯一原因是因为它们在同一个线程上。
提供一个简单的例子:
src="iframe.html" window.onload = function(){ while(1){} }; 来源:
我也尝试过这样的多线程。艰难地学习了=)
【讨论】:
在新浏览器中,您可以使用沙盒属性将 iframe 与页面的其余部分隔离