考えただけですが、IFRAME
overを使用すると、DIV
基本的にその要素がウィンドウから分離され、低速のスクリプトIFRAME
が他のフレーム/ウィンドウに影響を与えないようになりますか?
7442 次
2 に答える
11
はい、最初の部分では、iframeはウィンドウをiframe内のスクリプトから「一種」分離します。ただし、親ウィンドウには引き続き。を介してアクセスできますwindow.parent
。
2番目の部分:いいえ、iframe内の遅いスクリプトが他のフレーム/ウィンドウに影響を与えないようにすることはありません。メインウィンドウオブジェクトとその子ノードはすべて同じスレッドで実行されます。JavaScriptはシングルスレッドです[この場合、Webworkerを無視します。とにかくそれらの間でdom要素を渡すことはできません]。したがって、parent-window / child-iframeのウィンドウオブジェクトにアクセスできる唯一の理由は、それらが同じスレッド上にあるためです。
簡単な例を提供するには:
- main.htmlというページを作成します
- そのページで、iframeを持っている
src="iframe.html"
- iframeの横に、好きなテキストが表示されたボタンがあります。気にしません。
- iframe.htmlでは、
window.onload = function(){ while(1){} };
- iframe.htmlにアクセスします。マウスカーソルをボタンの上に置いても、応答/再描画されないことに気付くでしょう。これは、ブラウザがフリーズしているためです。
出典:
私もこのようなマルチスレッドを取得しようとしました。難しい方法を学んだ=)
于 2010-04-20T06:31:08.750 に答える
3
新しいブラウザでは、サンドボックスプロパティを使用して、ページの残りの部分からiframeを分離できます。
于 2015-11-19T04:41:49.617 に答える