Электронная библиотека книг Александра Фролова и Григория Фролова.
Shop2You.ru Создайте свой интернет-магазин
Библиотека
Братьев
Фроловых
[Назад] [Содержание] [Дальше]

Создание Web-приложений: Практическое руководство

© Александр Фролов, Григорий Фролов
М.: Русская Редакция, 2001, 1040 стр.

5. Фреймы

5. Фреймы... 1

Создание документа с фреймами.. 3

Файл описания структуры фреймов. 3

Атрибуты тега <FRAMESET>.. 4

Атрибуты тега <FRAME>.. 4

Ссылки между окнами фреймов. 5

Пример использования фреймов.. 5

Файл описания структуры фреймов. 5

Верхний фрейм.. 7

Левый фрейм.. 7

Правый фрейм.. 8

Плавающие фреймы... 8

Атрибуты тега <IFRAME>.. 9

Пример использования плавающего фрейма. 9

Всегда ли нужны фреймы... 10

Аргументы в пользу фреймов. 10

Аргументы против использования фреймов. 11

 

В предыдущей главе мы рассказывали о применении таблиц для размещения различных объектов на страницах HTML. Этот способ обеспечивает хорошие результаты и потому широко применяется Web-дизайнерами, однако ему присущи некоторые ограничения. Например, посетитель не может регулировать размеры столбцов таблицы или прокручивать их содержимое.

Вы сможете сделать свой узел Web намного удобнее для просмотра, если предоставите посетителю многооконный интерфейс, реализованный при помощи фреймов. В этом случае окно браузера разделяется на окна (фреймы), в каждом из которых отображается содержимое различных документов HTML (рис. 5-1). Таким образом, посетитель увидит в окне браузера сразу несколько документов.

Рис. 5-1. Страница справочной системы узла Web компании NetTrader.ru, реализованная с использованием фреймов

Страница, показанная на рис. 5-1, состоит из трех фреймов. Первый фрейм расположен в верхней части окна и служит для отображения логотипа (баннера). Второй фрейм предназначен для отображения оглавления (ссылок на различные разделы сервера), представляющие собой ни что иное, как обычные документы HTML. И, наконец, третий фрейм имеет самые большие размеры и предназначен для просмотра документов.

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

Аналогичным образом оформлена страница узла Web авторов этой книги, показанная на рис. 5-2.

Рис. 5-2. Страница узла Web авторов этой книги, реализованная с использованием фреймов

Здесь верхний фрейм используется для отображения логотипа, левый — для размещения списка разделов узла Web, а правый — для просмотра содержимого списка разделов.

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

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

Создание документа с фреймами

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

Файл описания структуры фреймов

Документ HTML, описывающий структуру фреймов, содержит тег <FRAMESET>,  внутри которого определены теги <FRAME> и <NOFRAME>.

Ниже мы привели пример такого документа:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
  <HEAD>
    <TITLE>
Заголовок документа</TITLE>
  </HEAD>

  <!--
Определение фреймов -->
  <FRAMESET ROWS="90,*" FRAMEBORDER=1 BORDER=1>
    <FRAME SRC="frame1.htm">
    <FRAME SRC="frame2.htm">

  <!-- Вариант для браузера, не способного работать с фреймами -->
    <NOFRAME>
      <BODY BGCOLOR="#FFFFFF">
      . . .
      </BODY>
    </NOFRAME>
  </FRAMESET>
</HTML>

Как видите, в начале документа HTML, который предназначен для описания фреймов, нет привычного тега <BODY>. Вместо этого там расположен тег определения набора фреймов <FRAMESET>, который используется в паре с закрывающим тегом </FRAMESET>. Атрибуты тега <FRAMESET> описывают набор фреймов в целом, задавая размеры, внешний вид рамки и так далее.

Между тегами <FRAMESET> и </FRAMESET> находятся теги <FRAME>, которые определяют параметры отдельных фреймов. В частности, операторы <FRAME> задают адреса URL документов HTML, которые загружаются в фреймы сразу после их создания.

Помимо тегов <FRAME>, внутри пары тегов <FRAMESET> и </FRAMESET> необходимо разместить теги <NOFRAME> и </NOFRAME>. Между этими тегами Вы должны расположить документ HTML, который будет отображаться браузерами, не способными работать с фреймами. К числу таких относятся, например, NSCA Mosaic и Microsoft Internet Explorer версии 2.0, а также Netscape Navigator версий, более ранних чем 2.0.

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

Заметим, что можно создавать вложенные фреймы, определяя наборы фреймов внутри пары тегов <FRAMESET> и </FRAMESET>:

<FRAMESET ROWS="90,*" FRAMEBORDER=0 BORDER=1>
 
<FRAME SCROLLING="no" NAME="title" NORESIZE SRC="title.htm">
  <FRAMESET COLS="25%,75%" FRAMEBORDER=0 BORDER=1>
    <FRAME SCROLLING="auto" NAME="toc" SRC="toc.htm">
    <FRAME SCROLLING="auto" NAME="main page" SRC="main.htm">
  </FRAMESET>

  <NOFRAME>
    <BODY BGCOLOR="#FFFFFF">
    . . .
    </BODY>
  </NOFRAME>
</FRAMESET>

Вы можете использовать вместо фрейма набор фреймов, заменив соответствующий тег <FRAME> на определение набора, сделанное тегами <FRAMESET>.

Атрибуты тега <FRAMESET>

Задавая атрибуты тегов <FRAMESET> и <FRAME>, можно задавать размер фреймов, вид и толщину рамки, отображаемой вокруг фреймов, расстояние между фреймами, выравнивание текста, расположенного рядом с фреймом, возможность изменения размера фрейма и прокрутки его содержимого и т.д.

Прежде всего, рассмотрим атрибуты тега <FRAMESET>, предназначенного для определения набора фреймов (табл. 5-1).

Таблица 5-1. Атрибуты тега <FRAMESET>

Атрибут

Описание

COLS

Ширина колонки в процентах, пикселах или относительный размер

ROWS

Высота строки в процентах, пикселах или относительный размер

FRAMEBORDER

Если значение этого атрибута равно 1, фреймы будут иметь трехмерную рамку, ширина которой задается в пикселах. В том случае, когда указано значение 0, рамка не создается

BORDER

Используется только браузером Netscape Navigator. Задает толщину рамки фрейма в пикселах

FRAMESPACING

С помощью этого атрибута можно задать дополнительное расстояние между фреймами в пикселах

 

Атрибуты COLS и ROWS нужны в том случае, когда фреймы, определенные в наборе, располагаются в виде таблицы. Первый из этих атрибутов указывает ширину колонки, а второй — высоту строки. Если фреймы располагаются в одном столбце, атрибут COLS указывать не надо. Аналогично, если фреймы занимают только одну строку, не нужно указывать атрибут ROWS.

Вы можете задать значения для атрибутов COLS и ROWS либо в процентном отношении, соответственно, к ширине и высоте окна баузера, либо в пикселах. Если вместо значения указан символ *, колонка или строка занимают всю оставшуюся часть окна.

Например, ниже указано, что высота первого фрейма равна 90 пикселам, а второй фрейм занимает всю нижнюю часть окна браузера:

<FRAMESET ROWS="90,*">

В следующем примере два фрейма, расположенные рядом, занимают, соответственно, 20% и 80% ширины окна браузера.

<FRAMESET COLS="20%,80%">

Атрибуты тега <FRAME>

Другой тег, который используется для определения параметров фреймов — это тег <FRAME>. Возможные значения его атрибутов приведены в табл. 5-2.

Таблица 5-2. Атрибуты тега <FRAME>

Атрибут

Описание

ALIGN

Задает выравнивание фрейма или текста, расположенного рядом с фреймом. Этот атрибут может принимать следующие значения: LEFT, CENTER, RIGHT,TOP, BOTTOM

MARGINHEIGHT

Размер отступа по вертикали от границ фрейма в пикселах

MARGINWIDTH

Размер отступа по горизонтали от границ фрейма в пикселах

FRAMEBORDER

Если значение этого атрибута равно 1, фреймы будут иметь трехмерную рамку, ширина которой задается в пикселах. В том случае, когда указано значение 0, рамка не создается

NAME

Этот атрибут задает имя фрейма, которое используется в теге ссылки <A> для указания, в какой фрейм нужно загрузить новый документ

NORESIZE

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

SCROLLING

Атрибут SCROLLING определяет, нужно ли создавать полосы просмотра для свертки содержимого фрейма. Для этого параметра можно указывать следующие значения:

YES         полосы просмотра создаются всегда;

NO          полосы просмотра не создаются;

AUTO    полосы просмотра создаются только при необходимости, когда документ HTML не помещается полностью в окне фрейма

SRC

Адрес URL файла с документом HTML, который загружается в окно фрейма

 

Атрибут ALIGN используется только для «плавающих фреймов» в браузере Microsoft Internet Explorer. Мы расскажем о таких фреймах немного позже.

Ссылки между окнами фреймов

Создавая гипертекстовые ссылки, при помощи атрибута TARGET тега <A> Вы можете указывать, в какое из окон фрейма необходимо выполнить загрузку соответствующего документа.

Здесь можно использовать одно из предопределенных имен, перечисленных в табл. 5-3, или указать имя, заданное атрибутом NAME тега <FRAME>.

Таблица 5-3. Значения атрибута TARGET

Значение атрибута

Описание

_top

Документ HTML будет загружен в окно самого верхнего уровня

_parent

Документ HTML загрузится в родительское окно (по отношению к текущему окну)

_self

Документ будет загружен в текущее окно

_blank

Для загрузки документа будет использовано новое окно без имени

 

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

Пример использования фреймов

В качестве примера рассмотрим исходные тексты документов, определяющего фреймы на главной странице нашего узла Web с адресом http://www.frolov.pp.ru (рис. 5-2). Это файл описания структуры фреймов, а также документы HTML, предназначенные для отдельных фреймов страницы.

Файл описания структуры фреймов

Ниже мы привели в сокращенном виде содержимое файла описания структуры фреймов для главной страницы нашего узла Web:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<TITLE>Alexandr Frolov & Grigory Frolov</TITLE>
</HEAD>

<FRAMESET ROWS="90,*" FRAMEBORDER=0 BORDER=1>
  <FRAME SCROLLING="no" NAME="title" NORESIZE SRC="title.htm" MARGINHEIGHT=1>
 
  <FRAMESET COLS="25%,75%" FRAMEBORDER=0 BORDER=1>
    <FRAME SCROLLING="auto" NAME="toc" SRC="toc.htm">
    <FRAME SCROLLING="auto" NAME="main page" SRC="main.htm">
  </FRAMESET>

  <NOFRAME>
    <BODY BGCOLOR="#FFFFFF">
    <TABLE><TR><TD VALIGN=TOP><IMG SRC="frlogo2.gif"></TD><TD VALIGN=TOP><IMG SRC="frlogor.gif"></TD></TR></TABLE>
    <H2>Добро пожаловать на наш сервер WEB!</H2>
    <P>На этом сервере вы можете найти подробную информацию…
. . .

    <A HREF="http://www.glasnet.ru/~frolov/index.html" TARGET="_top">Домашняя страница</A><BR>
    <A HREF="news.htm" TARGET="main page">
Новости</A><BR>
    <A HREF="books.htm" TARGET="main page">
Книги</A><BR>
    <A HREF="terra.htm" TARGET="main page">
Компьютерра</A><BR>
    <A HREF="frends.htm" TARGET="main page">
Партнеры и друзья</A><BR>
    <A HREF="virchk.htm" TARGET="main page">
Поиск вирусов</A><BR>
    <A HREF="../eng/home.htm" TARGET="_top">Set English Language</A><BR>
. . .
    </BODY>
 
  </NOFRAME>
</FRAMESET>
</HTML>

Здесь мы определили два набора фреймов, причем второй набор вложен в первый.

Для первого набора мы определили один фрейм, расположенный горизонтально. Первый из них имеет высоту 90 пикселов и используется для размещения нашего логотипа, второй занимает все оставшееся пространство:

<FRAMESET ROWS="90,*" FRAMEBORDER=0 BORDER=1>

Как видно из этой строки, фреймы не имеют рамки (значение атрибута FRAMEBORDER равно 0). Мы убрали рамку, потому что она выглядит слишком тяжеловесно. Дополнительно мы указали, что при просмотре в браузере Netscape Navigator фреймы должны иметь рамку толщиной 1 пиксел.

Зачем мы эти сделали?

Нам хотелось, чтобы сервер выглядел по возможности одинаково в окнах браузеров Microsoft Internet Explorer и Netscape Navigator. Однако эти браузеры работают по-разному с рамками фреймов.

Если в теге <FRAMESET> указать, что фреймы не должны иметь рамки, то Microsoft Internet Explorer не рисует трехмерную рамку. Однако между фреймами остается маленький зазор серого цвета, который выглядит как рамка. Эту рамку можно использовать, например, для изменения размера фрейма (если при определении фрейма для него не указан параметр NORESIZE, запрещающий изменение размера).

Браузер Netscape Navigator в указанной выше ситуации (когда значение атрибута FRAMEBORDER равно нулю) не оставляет никакого зазора между фреймами. В этом и выражается отличие. Для того чтобы сделать зазор размером в один пиксел, мы указали атрибут BORDER, который распознается только браузером Netscape Navigator.

В свободном пространстве ниже фрейма первого набора мы расположили еще один набор фреймов. Второй набор фреймов состоит из двух фреймов, расположенных вертикально. Эти фреймы занимают, соответственно, 25% и 75% ширины родительского фрейма:

<FRAMESET COLS="25%,75%" FRAMEBORDER=0 BORDER=1>

Вернемся опять к первому набору фреймов.

В этом наборе определен только один фрейм:

<FRAME SCROLLING="no" NAME="title" NORESIZE SRC="title.htm" MARGINHEIGHT=1>

Так как этот фрейм предназначен для отображения логотипа, для него не используется свертка. Поэтому значение атрибута SCROLLING равно «no».

Имя фрейма указано в атрибуте NAME как “title”. Дополнительно мы указали атрибут NORESIZE, запретив изменение размера фрейма мышью.

Атрибут SRC указан как «title.htm». Из файла с этим именем загружается документ HTML при отображении фрейма. Заметим, что файл title.htm расположен в том же каталоге, что и файл, определяющий фреймы.

Атрибут MARGINHEIGHT задает отступ по высоте, равный 1 пикселу. Мы указали этот атрибут для уменьшения зазора между верхней границей фрейма и графическими изображениями логотипа.

Верхний фрейм

Верхний фрейм предназначен для отображения логотипа. Соответствующий файл title.htm содержит таблицу с двумя графическими изображениями и не имеет никаких интересных особенностей:

<HTML>
  <BODY BGCOLOR="#FFFFFF">
    <TABLE>
      <TR><TD VALIGN=TOP><IMG SRC="f2.gif"></TD>
      <TD VALIGN=TOP><IMG SRC="frlogo.gif"></TD></TR>
    </TABLE>
  </BODY>
</HTML>

Левый фрейм

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

<FRAME SCROLLING="auto" NAME="toc" SRC="toc.htm">
<FRAME SCROLLING="auto" NAME="main page" SRC="main.htm">

Так как для атрибута SCROLLING указано значение «auto», то если содержимое не помещается в окне фрейма, около фрейма появляются полосы прокрутки.

Окно левого фрейма называется toc. Оно загружается из файла с именем toc.htm, который состоит из ссылок на разделы сервера:

<HTML>
  <BODY BGCOLOR="#B0FFD8">
    <BASEFONT SIZE=2>
    <LEFT>
      <A HREF="http://www.glasnet.ru/~frolov/index.html" TARGET="_top">Домашняя страница</A><BR>
      <A HREF="main.htm" TARGET="main page">Добро пожаловать</A><BR>
      <A HREF="news.htm" TARGET="main page">Новости</A><BR>
      <P><A HREF="books.htm" TARGET="main page">Книги</A><BR>
      <P><A HREF="capital.htm" TARGET="main page">КАПИТАЛ</A><BR>
      <A HREF="terra.htm" TARGET="main page">КОМПЬЮТЕРРА</A><BR>
      <A HREF="qa.htm" TARGET="main page">Вопросы и ответы</A><BR>
      <A HREF="links.htm" TARGET="main page">Ресурсы Internet</A><BR>
      <P><A HREF="virchk.htm" TARGET="main page">Вирусы</A><BR>
      <P><A HREF="frends.htm" TARGET="main page">Партнеры и друзья</A><BR>
      <A HREF="../guest/gbook.htm" TARGET="main page">Книга гостей</A><BR>
      <P><A HREF="../eng/home.htm" TARGET="_top">Set English Language</A><BR>
     </LEFT>
  </BODY>
</HTML>

Обратите внимание, что в тегах <A> используется атрибут TARGET, задающий имя окна для загрузки документа.

Когда пользователь выбирает строку “Домашняя страница”, документ HTML с адресом http://www.glasnet.ru/~frolov/index.html загружается в окно, которое называется _top. В результате указанный документ займет все внутреннее пространство в окне браузера.

Все остальные ссылки, кроме последней, загружают документы в окно с именем main page. Это окно соответствует фрейму, расположенному справа и принадлежащему второму набору фреймов.

При необходимости Вы можете загружать документы и в окно левого фрейма, указав в атрибуте TARGET значение toc. При этом можно сделать так, что при выборе в левом фрейме какого-либо раздела содержимое этого фрейма полностью изменяется, отображая, например, названия подразделов нового раздела.

Правый фрейм

Документ main.htm, который первоначально загружается в окно фрейма main page, представлен ниже (в сокращенном виде):

<HTML>
<BODY BGCOLOR="#FFFFFF">
<BGSOUND SRC="../midi/bach.mid"></BGSOUND>
<embed src="../midi/bach.mid" hidden="yes">

<H2>Добро пожаловать на наш сервер WEB!</H2>
<P>На этом сервере вы можете найти подробную информацию
о наших книгах из серий &quot;Персональный компьютер. Шаг за шагом&quot; и
&quot;Библиотека системного программиста&quot;:

<UL>
<LI>аннотации и оглавления;
<LI>исходные тексты программ, опубликованных в книгах;
<LI>наши планы на будущее;
<LI>список ошибок, замеченных в наших книгах;
<LI>информацию о наших друзьях;
<LI>бесплатные книги, доступные в режиме online
</UL>
. . .
</BODY>
</HTML>

В самом начале документа находятся два тега, предназначенные для вставки звукового файла. В данном случае мы вставили музыкальный файл MIDI:

<BGSOUND SRC="../midi/bach.mid"></BGSOUND>
<embed src="../midi/bach.mid" hidden="yes">

Первый из этих операторов работает только в браузере Microsoft Internet Explorer, а второй — еще и в браузере Netscape Navigator. Далее следует содержимое страницы, которое мы исключили для сокращения размера листинга.

Плавающие фреймы

Браузер Microsoft Internet Explorer позволяет создавать еще одну разновидность фреймов — так называемые плавающие фреймы. К сожалению, браузеры Netscape Navigator и NSCA Mosaic игнорируют плавающие фреймы, что ограничивает их область применения.

Плавающий фрейм вставляется в документ HTML аналогично графическому изображению (рис. 5-3).

Рис. 5-3. Образец документа HTML с плавающим фреймом

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

Плавающий фрейм вставляется в документ HTML при помощи тега <IFRAME>, который всегда используется в паре с закрывающим тегом </IFRAME>.

Атрибуты тега <IFRAME>

Для тега <IFRAME> можно задавать атрибут ALIGN, который определяет выравнивание текста, расположенного около плавающего фрейма, атрибуты WIDTH и HEIGHT, задающие размеры фрейма, а также атрибуты HSPACE и VSPACE, которые применяются в теге <IMG>.

Еще один атрибут, который допустим при описании плавающего фрейма — FRAMEBORDER. Он может принимать значения 1 или 0. Если значение этого атрибута равно 1, плавающий фрейм заключается в трехмерную рамку (используется по умолчанию), а если 0 — рамка не отображается.

Атрибут SCROLLING может принимать значения yes,  no или auto. Если указано значение  yes, окно плавающего фрейма будет иметь полосы прокрутки. Если no — полос прокрутки не будет. В том случае, когда для атрибута SCROLLING указано значение auto, полосы прокрутки будут создаваться только при необходимости, когда содержимое документа не помещается в окне фрейма.

Пример использования плавающего фрейма

Приведем исходный текст документа HTML, в который вставлен плавающий фрейм (листинг 5-1). Внешний вид этого документа при его просмотре в браузере Microsoft Internet Explorer был показан на рис. 5-3.

Листинг 5-1. Вы найдете в файле chap5\IFrames\home.htm на прилагаемом к книге компакт-диске

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<TITLE>Плавающие фреймы в документах HTML</TITLE>
</HEAD>
<BODY BGCOLOR=#FFFFFF>
<H2>Размещение плавающих фреймов в документах HTML</H2>
Вы можете включить внутрь документа HTML плавающий фрейм:
<P><IFRAME SRC="include.htm" ALIGN=LEFT>
</IFRAME>Если указано выравнивание по левой границе, текст, расположенный рядом с плавающим фреймом, будет расположен справа от фрейма
<BR CLEAR=LEFT>А этот текст располагается ниже фрейма.
</BODY>
</HTML>

В этом документе определен плавающий фрейм, в который загружается документ HTML, расположенный в файле include.htm (листинг 5-2).

Обратите внимание, что для выполнения принудительного перехода к новой строке после фрейма мы использовали тег <BR> с атрибутом CLEAR=LEFT.

Листинг 5-2. Вы найдете в файле chap5\IFrames\include.htm на прилагаемом к книге компакт-диске

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<TITLE>Документ для плавающего фрейма</TITLE>
</HEAD>
<BODY BGCOLOR=#FFFFFF>
<P>Содержимое этого документа отображается внутри плавающего фрейма.
<P>Оно отображается в окне, которое имеет вертикальную полосу просмотра.
<P>Если содержимое документа, загруженного в плавающий фрейм, не помещается в окне фрейма, пользователь может пролистать его при помощи этой полосы просмотра.
</BODY>
</HTML>

Всегда ли нужны фреймы

Несмотря на то, что фреймы облегчает разработку узлов Web и предоставляет некоторые дополнительные удобства посетителям, мы рекомендуем по возможности обходиться без них. Чтобы принять решение в пользу фреймов или против них, взвесьте преимущества и недостатки данной технологии.

Аргументы в пользу фреймов

Прежде всего, мы приведем аргументы в пользу фреймов, имеющие значение для разработчиков Web-узла и для его посетителей:

·         облегчение разработки Web-узлов, содержащих большое количество страниц и ссылок;

·         одновременный просмотр нескольких документов HTML в разных фреймах;

·         одновременная загрузка нескольких документов HTML посредством одной ссылки;

·         регулирование размеров окон фреймов при помощи мыши;

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

Сделаем некоторые пояснения.

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

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

Обратите внимание на рис. 5-2. Здесь в левой части окна браузера видно меню, оформленное в виде отдельного документа HTML и расположенное в отдельном фрейме. Если нам будет нужно, например, добавить новый раздел, то для этого будет достаточно отредактировать документ toc.htm, содержащий меню разделов.

Применяя так называемые клиентские сценарии, о которых Вы узнаете позже, можно с использованием одной ссылки загружать сразу несколько документов HTML в разные фреймы. Щелкнув такую ссылку, привязанную к клиентскому сценарию, посетитель может, например, одновременно изменить содержимое меню и окна с информацией.

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

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

Аргументы против использования фреймов

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

Вот наиболее заметные недостатки фреймов:

·         далеко не все браузеры способны работать с фреймами;

·         плавающие фреймы отображаются только браузером Microsoft Internet Explorer;

·         у посетителей возникают трудности при попытке создать закладку на странице, реализованной с применением фреймов;

·         при регистрации узлов Web с фреймами в поисковых системах Интернета в базы данных этих систем часто заносятся ссылки не на страницу описания фреймов, а на страницы отдельных фреймов;

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

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

Однако если Ваш узел Web должен работать с абсолютно любыми типами браузеров, придется либо совсем отказаться от использования фреймов, либо предусмотреть два комплекта страниц HTML. В последнем случае файл описания фреймов должен содержать раздел, выделенный тегами <NOFRAME> и </NOFRAME>. Напомним, что в этом разделе располагается содержимое документа HTML, отображаемого в окне браузеров, неспособных работать с фреймами.

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

Трудности с печатью и с установкой закладок могут отпугнуть от Вашего узла Web начинающих пользователей Интернета, что тоже следует принимать во внимание.

Заметим, что хотя применение фреймов и упрощает разработку меню и оглавлений многостраничных узлов Web, существуют и другие приемы, упрощающие этот процесс и без фреймов. Мы вернемся к этому вопросу позже при обсуждении активных серверов Web, программ CGI, а также технологий активных серверных страниц ASP и PHP.

 

 

 

[Назад] [Содержание] [Дальше]