Чому кадри застаріли в HTML5, а не iFrames? Адже різниці між ними майже немає. У багатьох випадках використання будь-якого з них дасть однаковий результат (вибачте мене, якщо я помиляюся)?
Чому кадри застаріли в HTML5, а не iFrames? Адже різниці між ними майже немає. У багатьох випадках використання будь-якого з них дасть однаковий результат (вибачте мене, якщо я помиляюся)?
Відповіді:
У вашій публікації є кілька помилок. По-перше, елементи frame
та frameset
елементи не застаріли в HTML5, вони застаріли (тобто видалено повністю).
По-друге, frame
і frameset
елементи не є тим самим, що й iframe
елемент, і вони не дають однакового результату:
frameset
Елемент замінює елемент тіла в сторінках в якості засобу для включення в іншу модель документа для веб - сторінок: вони погано для зручності та доступності, а також те , що вони мали намір досягти, були повністю замінені CSS і розвитку повсюдної на стороні сервера.
iframe
Елемент, з іншого боку, не замінює тіло сторінки. Він виступає як засіб включення нового контексту перегляду, вбудованого в блок вмісту. Він не страждає від тих же зручностей або проблем із доступністю, що і модель набору фреймів, і використовується майже в будь-якому місці, де потрібно включати вбудований контекст перегляду (віджети є найбільш плодовитим прикладом). 1
В iframe
HTML5 також є додаткові функції в тому, що він може бути в пісочному режимі , що дозволяє батьківському документу вирішувати, що буде виконано в ньому. Це дозволяє забезпечити певний рівень безпеки для батьківського документа (та відвідувачів батьківського документа) під час вбудовування ненадійного вмісту.
Примітка 1:object
елемент кілька перекривається з iframe
елементом, але має іншу модель змісту (яка призначена в основному для плагінів), має свій власний набір застережень, і не має пісочницю атрибути iframe
елемент має.
Рамки (набір кадрів) виступають як документ. Його видалено, оскільки він порушує структуру документів та навігацію HTML. Напр. у вас є посилання в одному кадрі, вміст в іншому, ви не можете відкрити посилання зі сторінки в новому вікні, ви не можете посилатися на певну підсторінку тощо.
З іншого боку, якщо рамки нічого не порушують, якщо використовувати їх правильно, оскільки вони призначені для вмісту в пісочному режимі (наприклад, оголошення).
Набори фреймів часто використовуються таким чином, що вони порушують основний принцип Інтернету - щоб кожен документ мав одну URL-адресу. Це призводить до проблем із зв’язуванням, закладками, пошуковими системами тощо.
Типовим використанням набору фреймів буде кадр вгорі з логотипом або заголовком, рамка збоку з меню та рамка вмісту. Але пошукові системи індексують окремі сторінки, тому, коли ви знайдете якусь сторінку в Google, вона посилатиметься безпосередньо на сторінку вмісту без набору фреймів, тому ви втрачаєте навігацію. Проблема з посиланнями та закладками полягає в тому, що ви, як правило, хочете пов’язати або закласти певну сторінку вмісту всередині набору фреймів, не втрачаючи сам набір кадрів. Це не простий спосіб зробити це.
Причина наборів кадрів стала популярною в першу чергу через те, що вони дозволяли статично розташований заголовок і меню з областю вмісту прокрутки. Але цього можна досягти набагато простіше за допомогою CSS сьогодні. Крім того, кадри дозволяють використовувати загальні елементи, такі як логотипи та меню на декількох сторінках, не використовуючи кодування на стороні сервера. Це було перевагою в той час, коли кодування на стороні сервера було втомливим і схильним до помилок (тобто сценарії CGI), і багато хостів взагалі не дозволяли сценарію на стороні сервера. Сьогодні, використовуючи системи управління вмістом (CMS) та кращі серверні платформи, це набагато краще обробляється на стороні сервера.
Тому в основному немає переваг використання набору фреймів, просто безліч проблем.
IFrames можна використовувати так само, як використовувалися набори фреймів, і в цьому випадку вони також призводять до тих же проблем. Але є також багато законних способів використання кадрів, які не призводять до тих самих проблем.