Подтвердить что ты не робот

Причины не использовать IFrame?

Есть ли какие-либо причины не использовать iframes? В настоящее время я использую его для загрузки страницы с другого сервера (страница с подпиской - часть распределенного приложения), чтобы обеспечить бесшовную работу. Использует ли iframe плохую практику или ее использование ОК?

4b9b3361

Ответ 1

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

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

Ответ 2

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

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

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

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

Ответ 3

Плюсы:

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

Минусы:

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

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

Ответ 4

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

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

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

Ответ 5

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

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

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

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

Ответ 6

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

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

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

Ответ 7

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

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

Ответ 8

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

Рассмотрим возможности... если они используются для параметризованного контента, они создали интерфейс. И на профессиональном сайте для этого интерфейса требуется SLA и управление версиями, которые почти всегда игнорируются в спешке, чтобы подключиться к сети.

Если используется для активного содержимого - фреймы с хостом script - тогда существуют (разные) кросс-доменные ограничения script. Некоторые могут быть взломаны, но редко последовательно. И если ваш обрамленный контент должен быть интерактивным, он будет не в состоянии сделать это за рамками.

Если используется с лицензированным контентом, то участвующие сайты обременены необходимостью пересылать информацию о правах вне зоны между хостами.

Таким образом, хотя они иногда полезны внутри сайта, они скорее не подходят для mashup. Вы гораздо лучше смотрите на настоящие порталы и портлеты. Хуже того, они любят каждого любителя веб-сайтов - многие технические руководители навязывают им решение многих проблем. Фактически, они создают больше.