Почему разработчики ненавидят iframes? [дубликат]

UIDevice identifierForVendor представленный в iOS 6 будет работать для ваших целей.

identifierForVendor представляет собой буквенно-цифровую строку, которая однозначно идентифицирует устройство для поставщика приложения. (только для чтения)

@property(nonatomic, readonly, retain) NSUUID *identifierForVendor

Значение этого свойства одинаково для приложений от одного поставщика, работающих на одном устройстве. Различное значение возвращается для приложений на одном устройстве от разных поставщиков, а также для приложений на разных устройствах в зависимости от поставщика.

Доступно в iOS 6.0 и более поздних версиях и объявлено в UIDevice.h

Для iOS 5 см. Эту ссылку UIDevice-with-UniqueIdentifier-для-iOS-5

52
задан Community 23 May 2017 в 00:31
поделиться

16 ответов

Iframes can have similar issues as frames and inconsiderate use of XMLHttpRequest: They break the one-document-per-URL paradigm, which is essential for the proper functioning of the web (think bookmarks, deep-links, search engines, ...).

If you're creating a web application, use whatever technique you want to (including frames, flash, applets, $whatever). If you're creating an actual, informational web page, stick to frameless HTML, CSS and unobstrusive JavaScripts and keep in mind that the page should still be usable with scripting disabled.

60
ответ дан 7 November 2019 в 09:07
поделиться

Это плохая практика и ленивый способ написания хорошего (читай: делает то, что хотел заказчик) кода. Поиск по запросу "iframe bad" в Google (без кавычек) вызывает множество дискуссий на форуме по этой теме. Если вам действительно нужно добавить внешний контент, используйте AJAX. А еще лучше вообще не делай этого.

-3
ответ дан 7 November 2019 в 09:07
поделиться

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

0
ответ дан 7 November 2019 в 09:07
поделиться

Не используйте фреймы iframe для дизайна. CSS лучше справляется с той же задачей и дает гораздо больше свободы.

0
ответ дан 7 November 2019 в 09:07
поделиться

HTML-элементы не должны иметь поведения.

1
ответ дан 7 November 2019 в 09:07
поделиться

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

3
ответ дан 7 November 2019 в 09:07
поделиться

Я полагаю, потому что это противоречит всему фундаментализму html-Designs-contents + css-does-the-visual-design. Кроме того, чрезмерное использование iframe - это потеря производительности, поскольку он выполняет отдельные вызовы для получения кадра. Если вы думаете об этом, AJAX в основном похож на iframe, за исключением того, что он моден сегодня (может не быть в будущем).

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

1
ответ дан 7 November 2019 в 09:07
поделиться

Одна из проблем заключается в том, что у них есть собственный жизненный цикл страницы, поэтому взаимодействие между хостом и дочерним элементом iframe ограничено (строка запроса, переменные сеанса или JS). Альтернативой может быть использование div с прокруткой.

Другая проблема - печать. Вывод iframe (или прокручиваемого div, если на то пошло) может быть непредсказуемым и сильно различается в зависимости от браузера.

4
ответ дан 7 November 2019 в 09:07
поделиться

Я думаю, что IFrames имеют свое место. Я бы не стал использовать их на интерфейсных / общедоступных веб-сайтах из-за проблем с SEO и т. Д. Для внутреннего / внутреннего веб-приложения я думаю, что они полезны, когда вам нужно изолировать стиль определенного раздела. с остальной части страницы, например средство просмотра отчетов или редактор HTML, где стили, унаследованные от родительской страницы, могут вызвать проблему, если все содержимое находится в одном документе. Мой 2с ...

3
ответ дан 7 November 2019 в 09:07
поделиться

Современные окна iframe имеют плохую репутацию из-за поддержки iframe в прошлых браузерах. Подобно VB.NET, имеющему плохую репутацию из-за истории VB6. Сейчас я использую их там, где это необходимо ... просто имейте в виду, что это может не работать, как вы время от времени планировали, и учитывать это.

3
ответ дан 7 November 2019 в 09:07
поделиться

Одна из причин - безопасность - атаки внедрения iframe были довольно распространены. См. Описание на этой странице Ars Technica:

http://arstechnica.com/security/news/2008/03/ongoing-iframe-attack-proving-difficult-to-kill.ars

и еще одна страница, резюмирует некоторые уязвимости (я не знаю, сколько из них актуально для текущего поколения браузеров, но статья не так уж и старая):

http://www.thespanner.co. uk / 2007/10/24 / iframes-security-summary /

С другой стороны, они обеспечивают междоменное взаимодействие и довольно часто используются веб-приложениями "ajaxy":

http://softwareas.com/ cross-domain-communication-with-iframes

8
ответ дан 7 November 2019 в 09:07
поделиться

Я думаю, люди путают фреймы iframe с фреймами HTML, а фреймы почти повсеместно презираются.

Люди используют фреймы iframe все время, даже не осознавая этого. Если я правильно помню, TinyMCE использует iFrames.

8
ответ дан 7 November 2019 в 09:07
поделиться

Я хотел добавить, что большую часть времени iframe также не помогают при поисковой оптимизации страницы. Робот Googlebot не размещает на странице содержимое iframe.

15
ответ дан 7 November 2019 в 09:07
поделиться

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

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

9
ответ дан 7 November 2019 в 09:07
поделиться

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

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

Я стараюсь избегать iframe, в основном потому, что считаю это нелегким решением. Я обнаружил, что когда я на самом деле сажусь и думаю об этом, вот и все ' s почти всегда лучшее решение. Несмотря на это, я тоже считаю, что для них есть место. Это идеал веб-мира: просто потому, что он давно используется не по назначению, пришел к консенсусу, что его никогда не следует использовать. На самом деле это не так, но я считаю, что вам следует дважды подумать, прежде чем использовать фреймы.

20
ответ дан 7 November 2019 в 09:07
поделиться

Нет ничего плохого в использовании Iframe для создания веб-приложений. Они позволяют сочетать целевой контент с инкапсуляцией памяти. Сколько раз кто-нибудь создавал какую-нибудь хитроумную штуку на javascript ajax, которая полностью разрушалась, когда они забывали загрузить последнюю версию Jlibrary на родительскую страницу или в DIV? Большинство других проблем связаны с SEO, которые имеют значение только в том случае, если вы действительно хотите украсть чужой контент, что в любом случае довольно глупо. Ифреймы дают вам инкапсулированную память и возможность обмениваться хорошо оформленными страницами на нескольких сайтах. Несмотря на то, что многие хотят заставить вас поверить, Iframes и их эквиваленты будут существовать еще очень долго.

4
ответ дан 7 November 2019 в 09:07
поделиться
Другие вопросы по тегам:

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