изоляция iFrame

Просто мысль, но был бы с помощью IFRAME по a DIV по существу сделайте тот элемент изолированным от окна способом что медленные сценарии, работающие в IFRAME не влиял бы на другие кадры/окно?

5
задан Louis 20 April 2010 в 04:11
поделиться

1 ответ

Да, для первой части, iframe будет «отчасти» изолировать ваше окно от скрипта в iframe. Однако к родительскому окну по-прежнему можно получить доступ через window.parent .

По поводу второй части: Нет, это не сделает так, чтобы скрипты в iframe были такими медленными, что не повлияют на другие фреймы / окна. Ваш объект главного окна и его дочерние узлы работают в одном потоке. JavaScript является однопоточным [игнорируйте веб-работников в этом случае, вы все равно не можете передавать элементы dom между ними], поэтому единственная причина, по которой вы можете получить доступ к объекту окна parent-window / child-iframe, заключается в том, что они находятся в одном потоке.

В качестве быстрого примера:

  • Создайте страницу с именем main.html
  • На этой странице добавьте iframe src = "iframe.html"
  • Рядом с iframe нажмите кнопку с любым текстом, который вы хотите, мне все равно.
  • В iframe.html window.onload = function () {while (1) {}};
  • Доступ к iframe.html. Вы заметите, что когда вы наводите курсор мыши на кнопку, она не реагирует / не перерисовывается. Это потому, что браузер завис.

Источник:
Я тоже пробовал использовать многопоточность. Выучил на собственном опыте =)

11
ответ дан 18 December 2019 в 13:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: