Недостатки
фреймов и их преодоление
Вроде
бы, фреймы всем хороши. Они позволяют разделить окно Web-обозревателя на несколько
независимых "форточек", в каждой из которых может отображаться своя
Web-страница. Таким образом, одна большая Web-страница делится на несколько
маленьких, содержащих какую-либо часть большой страницы: заголовок, полосу навигации,
сведения об авторских правах и основное содержимое. При этом когда пользователь
щелкает по гиперссылке, происходит обновление только фрейма с основным содержимым;
содержимое всех остальных фреймов остается неизменным.
Достоинства
такого подхода очевидны. Во-первых, не нужно дублировать заголовок, полосу навигации
и сведения об авторских правах на всех страницах сайта — достаточно поместить
их один раз в соответствующие фреймы, где они и останутся. Во-вторых, сами страницы
уменьшатся в размерах и станут быстрее загружаться.
На
этом достоинства фреймов кончаются, и начинаются недостатки.
Недостаток
первый: невозможность обновления содержимого сразу двух или нескольких фреймов.
Давайте рассмотрим гипотетический сайт — каталог программ, структура фреймов
которого показана на рис. 7.26.
Заголовок
сайта |
|||
Список
категорий программ (Интернет, офис, системные, утилиты, мультимедиа
и т. д.) |
Список
программ выбранной категории |
||
Описание
выбранной в списке программы, "снимок" экрана, ссылка для
загрузки и т.д. |
|||
Сведения
о правах разработчика сайта |
|||
Рис.
7.26. Структура фреймов сайта — каталога программ
Предположим,
пользователь щелкает одну из позиций списка категорий, расположенного в левом
фрейме. Вам необходимо обновить содержимое фрейма списка программ, относящихся
к выбранной категории, и вы это сделаете. Но, кроме того, нужно будет обновить
содержимое фрейма описания выбранной программы, скажем, вывести описание первой
или самой популярной программы в списке. Ведь если оставить в нем описание программы,
относящейся совсем к другой категории, это будет, мягко говоря, некрасиво.
К
несчастью, средствами HTML это сделать невозможно. Обычная гиперссылка HTML,
описываемая парным тегом <А>, может указывать только на один файл. Если
вы хотите по щелчку загружать сразу две страницы (или более — в данном случае
это несущественно) в разные фреймы, вам придется писать сценарий на языке JavaScript.
А это уже довольно сложная задача для начинающего Web-дизайнера. На первый раз
можем посоветовать только постараться избежать использования таких наборов фреймов
или же отказаться от фреймов вообще.
Недостаток
второй: невозможность задания текста, который Web-обозреватель помещает в заголовок
своего окна. Как вы знаете, он помещает туда название отображаемой в окне Web-страницы.
Но поскольку страница набора фреймов никогда не меняется (меняется только содержимое
одного из фреймов), текст в заголовке окна Web-обозревателя остается неизменным.
В принципе, это не очень страшно — мало кто из посетителей сайтов обращает внимание
на заголовок окна Web-обозревателя. Но если вы собираетесь выводить в заголовке
окна какую-либо важную информацию, имейте это в виду.
Недостаток
третий: "несовместимость". Путь фреймов к признанию комитетом WWWC
был так долог и тернист, что за это время успели появиться несколько программ
Web-обозревателей, их поддерживающих. Но поскольку единого стандарта на фреймы
не было, поддерживали они их по-своему. В результате фреймы стали одним из самых
"несовместимых" элементов HTML.
В
данном случае можно посоветовать только тщательно тестировать страницы наборов
фреймов в разных программах Web-обозревателей. Конечно, Dreamweaver старается
генерировать максимально совместимый код, но все-таки не помешает лишний раз
проверить, что он сгенерировал.
Недостаток
четвертый. О нем мы поговорим в главе 14, когда будем рассматривать поисковые
системы и "раскрутку" вашего сайта с их помощью.