Причины не использовать IFrame? - PullRequest
18 голосов
/ 10 августа 2009

есть ли причины , а не вообще использовать фреймы? В настоящее время я использую его для загрузки страницы с другого сервера (страница регистрации - часть распределенного приложения), чтобы обеспечить бесперебойную работу. Считается ли использование фреймов плохой практикой или все в порядке?

Ответы [ 7 ]

16 голосов
/ 10 августа 2009

iframe - отличный инструмент. Он имеет почти универсальную поддержку браузера, прост в реализации и имеет ряд полезных функций. Как и с любым другим элементом HTML, им можно злоупотреблять, но при разумном использовании он может сыграть роль в надежном интерфейсе.

Некоторые разработчики могут поспорить, что вместо этого следует использовать AJAX, а в некоторых ситуациях это может быть более подходящим подходом, но AJAX не является панацеей, и iframes может быть гораздо более простой реализацией, которая имеет тот же конечный результат для ваших пользователей. Сначала делайте то, что проще, и изменяйте это только тогда, когда вы можете проверить, как и почему это не работает.

12 голосов
/ 10 августа 2009

Продолжайте использовать iframes. Вот пример того, почему:

Вся вещь Verified By Visa действительно раздражает меня. Я с удовольствием делаю покупки на каком-то сайте, которому доверяю, когда меня перенаправляют на какой-то сайт, о котором я никогда не слышал ( не visa.com), и мне нужно заполнить какую-то другую форму и надеяться, что Меня правильно перенаправили обратно на сайт покупок.

Тогда недавно я ходил по магазинам на веб-сайте Джона Льюиса, и они открыли страницу с подтвержденной визой в фрейме - замечательно! Я все еще смотрю на сайт Джона Льюиса, и все, что происходит, это то, что меня просят ввести мой пароль Verified By Visa - без проблем.

Хотя я, как веб-разработчик, знаю, что между ним и старой доброй старой редирект-редирект-назад нет никакой технической разницы, пользовательский интерфейс намного лучше!

10 голосов
/ 10 августа 2009

Плюсы:

  • Помогает с медленным сторонним контентом, таким как значки и реклама
  • Песочница безопасности
  • Загрузка сценариев параллельно

Минусы:

  • Дорого, даже если пусто
  • Блокирует загрузку страницы
  • Non-семантический

Источник: Лучшие практики для ускорения вашего сайта

8 голосов
/ 10 августа 2009

iframes имеют доступ к определенным свойствам родительского документа, например, перенаправить родительский фрейм в новое место, используя parent.location.href или parent.window.location ( IE позволяет ограничить это).

Это отлично подходит для фишинговых атак при встраивании контента с других серверов (даже если вы доверяете этому серверу, он может быть скомпрометирован).

iframes можно также использовать для множества других атак: Сводка по безопасности IFrames .

3 голосов
/ 10 августа 2009

IFrames - отличный способ «включить» внешний контент в веб-страницу. Однако есть несколько (небольших) недостатков:

  • Безопасная песочница вызовет проблемы с JavaScript, если IFrame не происходит из того же домена.
  • Нельзя заставить CSS взаимодействовать между IFrame и родительской страницей, если вы сами не контролируете таблицы стилей.
  • С точки зрения индексации содержимое IFrame не существует.
  • Программа чтения с экрана может не понравиться IFrame по той же причине. Или они не смогут правильно указать относительное значение содержимого IFrame.

Кроме того, они великолепны! Точки, которые я упомянул, могут даже считаться преимуществами, если вы подумаете об этом (кроме программы чтения с экрана): в принципе, IFrame не может влиять на макет родительской страницы, и на него также не влияет родительский элемент.

3 голосов
/ 10 августа 2009

С HTML 5 вы сможете использовать API для обмена сообщениями между документами для отправки сообщений из окна в окно, но на данный момент iFrame является наиболее жизнеспособной альтернативой любому виду AJAX, для которого требуется загрузка стилей и сценариев для загрузки с данные.

Если вы хотите просто использовать текстовые данные в iFrame, используйте вместо этого AJAX. Если вы хотите, чтобы внешний CSS или JavaScript работал в защищенной среде, хотите, чтобы стилирование начиналось с нуля, или вам нужен доступ к междоменным документам, используйте iFrame.

Недостатки в том, что доступность iFrames, как правило, отстой, хотя вы можете предотвратить это, убедившись, что вы запускаете iFrame с уведомлением о внешнем контенте для программ чтения с экрана. Также проверьте спецификации HTML на предмет других способов сделать iFrame более доступным. Помимо этого и очевидных ограничений в отношении сценариев, iFrame - отличный инструмент, который используется ответственно и редко.

Последнее замечание: заполнение страницы, полной iFrames, определенно не очень хорошая идея, так как помните, что для каждого загруженного iFrame создается DOM, выполняются запросы HTML и создаются экземпляры упаковщиков документов, которые потребляют память и пропускную способность в процессе. , Придерживайтесь минимальных значений iFrame на странице, и вы избежите неправильного использования мощного инструмента в HTML-арене.

1 голос
/ 10 августа 2009

Как правило, iframes - плохой опыт по причинам SEO. Итак, вы спрашиваете, есть ли причина не использовать iframes? Да, если вы используете iframes, вы теряете некоторое органическое место в поисковых системах.

Конечно, существуют проблемы юзабилити, которые могут (и должны) превзойти ценность SEO страниц.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...