Чому кадри застаріли в HTML5, а не iFrames?


67

Чому кадри застаріли в HTML5, а не iFrames? Адже різниці між ними майже немає. У багатьох випадках використання будь-якого з них дасть однаковий результат (вибачте мене, якщо я помиляюся)?



дякую за посилання, але яка різниця між ними, що iframe не застаріли.

1
Тому що фрейми були жахливою ідеєю з самого початку, але якщо у кадрів є кілька законних випадків використання?
GordonM

Про переповнення стека: " Кадри застарілі в HTML5, але не iFrames "
WBT

Відповіді:


81

У вашій публікації є кілька помилок. По-перше, елементи frameта framesetелементи не застаріли в HTML5, вони застаріли (тобто видалено повністю).

По-друге, frameі framesetелементи не є тим самим, що й iframeелемент, і вони не дають однакового результату:

  • framesetЕлемент замінює елемент тіла в сторінках в якості засобу для включення в іншу модель документа для веб - сторінок: вони погано для зручності та доступності, а також те , що вони мали намір досягти, були повністю замінені CSS і розвитку повсюдної на стороні сервера.

  • iframeЕлемент, з іншого боку, не замінює тіло сторінки. Він виступає як засіб включення нового контексту перегляду, вбудованого в блок вмісту. Він не страждає від тих же зручностей або проблем із доступністю, що і модель набору фреймів, і використовується майже в будь-якому місці, де потрібно включати вбудований контекст перегляду (віджети є найбільш плодовитим прикладом). 1

В iframeHTML5 також є додаткові функції в тому, що він може бути в пісочному режимі , що дозволяє батьківському документу вирішувати, що буде виконано в ньому. Це дозволяє забезпечити певний рівень безпеки для батьківського документа (та відвідувачів батьківського документа) під час вбудовування ненадійного вмісту.


Примітки

Примітка 1:object елемент кілька перекривається з iframeелементом, але має іншу модель змісту (яка призначена в основному для плагінів), має свій власний набір застережень, і не має пісочницю атрибути iframeелемент має.


8
Чому елементи набору фреймів погані для "зручності використання" та "доступності", але елементи iframe - ні?
Мерітон - страйк

18
@meriton Набір фреймів створює сторінку з декількох документів, усі з однаковим пріоритетом: це спричиняє проблеми для читачів екрану , які не знають, на який документ слід зосередитись у будь-який конкретний час. З іншого боку, елементи рамки просто вбудовані в одну сторінку: це не відрізняється від вбудованого зображення.

9
Проблеми для читачів екрану: незрячі люди, з якими я говорив, усі казали, що вони вважають за краще навігацію застрягти в окремому кадрі (а не iFrame), оскільки вони можуть ігнорувати його та читати їм лише тоді, коли хочуть. Справжнім винуватцем для читачів екранів є Javascript та AJAX, що робить сторінки абсолютно непридатними для нинішніх читачів екранів (ну, моїй інформації про 10 місяців). Мій особистий досвід роботи з читачами екранів це підтримує.
GlenPeterson

4
Мені було цікаво, чи багато запитань про доступність 2005 року не були прострочені для оновлення. Дякую за інакодумство з цього приводу.
Ерік Реппен

1
@GlenPeterson такий же ефект без елемента кадру можна досягти, використовуючи CSS, щоб зробити блоковий елемент фіксованим у вікні перегляду. Тобто ЯК це слід робити, якщо ви хочете такого типу навігації. Це має більше сенсу.
нетрокс

8

Рамки (набір кадрів) виступають як документ. Його видалено, оскільки він порушує структуру документів та навігацію HTML. Напр. у вас є посилання в одному кадрі, вміст в іншому, ви не можете відкрити посилання зі сторінки в новому вікні, ви не можете посилатися на певну підсторінку тощо.

З іншого боку, якщо рамки нічого не порушують, якщо використовувати їх правильно, оскільки вони призначені для вмісту в пісочному режимі (наприклад, оголошення).


7

Набори фреймів часто використовуються таким чином, що вони порушують основний принцип Інтернету - щоб кожен документ мав одну URL-адресу. Це призводить до проблем із зв’язуванням, закладками, пошуковими системами тощо.

Типовим використанням набору фреймів буде кадр вгорі з логотипом або заголовком, рамка збоку з меню та рамка вмісту. Але пошукові системи індексують окремі сторінки, тому, коли ви знайдете якусь сторінку в Google, вона посилатиметься безпосередньо на сторінку вмісту без набору фреймів, тому ви втрачаєте навігацію. Проблема з посиланнями та закладками полягає в тому, що ви, як правило, хочете пов’язати або закласти певну сторінку вмісту всередині набору фреймів, не втрачаючи сам набір кадрів. Це не простий спосіб зробити це.

Причина наборів кадрів стала популярною в першу чергу через те, що вони дозволяли статично розташований заголовок і меню з областю вмісту прокрутки. Але цього можна досягти набагато простіше за допомогою CSS сьогодні. Крім того, кадри дозволяють використовувати загальні елементи, такі як логотипи та меню на декількох сторінках, не використовуючи кодування на стороні сервера. Це було перевагою в той час, коли кодування на стороні сервера було втомливим і схильним до помилок (тобто сценарії CGI), і багато хостів взагалі не дозволяли сценарію на стороні сервера. Сьогодні, використовуючи системи управління вмістом (CMS) та кращі серверні платформи, це набагато краще обробляється на стороні сервера.

Тому в основному немає переваг використання набору фреймів, просто безліч проблем.

IFrames можна використовувати так само, як використовувалися набори фреймів, і в цьому випадку вони також призводять до тих же проблем. Але є також багато законних способів використання кадрів, які не призводять до тих самих проблем.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.