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

Основное преимущество следующего поколения фреймов заключается в том, что были решены некоторые ключевые проблемы, присущие стандартной фреймовой модели.

Несмотря на то, что стандарт находится на стадии рабочего проекта, XFrames должны заменить традиционные фреймы.

Отличия от HTML-фреймов править

Традиционные HTML-фреймы, которые были введены в HTML 4.0, были полезны своей способностью компоновать несколько страниц в одном веб-документе. Однако возникал ряд проблем, связанных с реализацией таких документов, поэтому из стандарта W3C XHTML 1.1 стандартные фреймы были исключены. Ожидается, что XFrames сможет решить некоторые из них:

  • кнопка назад работает не так, как пользователь может интуитивно ожидать
  • невозможно сохранить конкретный документ в закладки или отправить кому-то ссылку на него
  • если документы обновляются, то может случиться ситуация, когда пользователь имеет разные версии частей документа
  • реакция на клавиши «Page Up» и «Page Down» зависит от того, в каком из фреймов документа находится фокус
  • уязвимость с безопасности, так как пользователь не знает, на какой именно странице он сейчас находится
  • Так как фреймовая модель поддерживается не всеми агентами, а необходимый тег <noframes> зачастую отсутствует в реализации, то такие агенты (например, поисковые системы) не могут произвести рендер страницы правильно, что означает невозможность правильной поисковой оптимизации.

XFrames решает проблему сохранения страницы в закладки путём кодирования нужного семейства фреймов в URI.

Реализация XFrames править

Как и другие языки разметки, XFrames реализуется посредством некоторого числа тегов и их атрибутов. Ниже представлен один из простых примеров:

<frames xmlns="http://www.w3.org/2002/06/xframes/">
   <head>
      <title>Home Page</title>
      <style type="text/css">
         #header {height: 150px; }
         #footer {height: 50px; }
         #nav {width: 15%; }
      </style>
   </head>
   <group compose="vertical">
      <frame xml:id="header" source="banner.xhtml"/>
      <group compose="horizontal">
	 <frame xml:id="main" source="news.xhtml"/>
	 <frame xml:id="nav" source="nav-menu.xhtml"/>
      </group>
      <group compose="vertical">
         <frame xml:id="footer" source="disclaimer.xhtml"/>
      </group>
   </group>
</frames>

Тег <frames> говорит о том, что данный документ представлен фреймовой моделью. В традиционных фреймах это аналог <frameset>. Как и в XHTML и HTML, тег <head> содержит мета-информацию, которая преимущественно используется для описания документа и поисковой оптимизации. Внутренний тег <style> используется для включения стилей CSS. Тег <group> группирует один или несколько фреймов вместе. Также может быть указан соответствующий стиль. Если же стиль не указан, то необходимо задать атрибут compose, который показывает способ компоновки элементов. Наконец, тег <frame> служит указателем на элемент для вставки, который задаётся через URL посредством атрибута source.

Статус XFrames править

Вторая версия рабочего проекта была выпущена 15 октября 2005 и описывала дальнейшие планы по реализации. Однако до сих пор XFrames имеет статус рабочего проекта и нет никаких известий о том, когда он станет Рекомендацией W3C.

См. также править

Ссылки править