Октябрь 6, 2005
Сага о фреймах (Часть 1)
Для чего применяются фреймы? Как правильно с ними работать? Когда их лучше избегать и какие подводные камни могут подстерегать нас на этом пути?
Нужно ли использовать фреймы?
Для начала давайте решим, для чего используются фреймы. Они появились еще во второй версии Netscape Navigator-а и предназначались для облегчения навигации при создании страничек (так тогда казалось).
Техника использования фреймов заключается в том, что все окно броузера делится на несколько областей, в каждую из которых можно загрузить независимую страничку. Кроме этого, был введен механизм, позволяющий управлять любой страничкой из любого окна. Например, можно в одном окне организовать меню сайта, а в другом показывать его содержимое. Причем, щелчок по ссылке в окне меню открывал страничку совсем в другом окне. Такое построение сайта встречается чаще всего, но ничто не мешает нам сделать не два фрейма, а, например, 3, 4, 5... и т.д. Но пока не будем торопиться с обсуждением механизма работы фреймов, а поговорим об их недостатках и уместности применения.
Основные недостатки сайта, построенного с применением фреймов, следующие:
- странички сайта не индексируются обычными поисковыми системами, исключая первую страницу. Это происходит из-за того, что страница описания фреймов не содержит в себе ссылок вида <a href="">...</a> и поисковые роботы, естественно, не могут попасть на внутренние странички. Приходится прикладывать дополнительные усилия, чтобы все же осуществить это. В частности, вводить вышеупомянутые ссылки именно для роботов.
- в случае попадания не на первую страничку сайта не существует "официального" способа перейти на первую страничку сайта - приходится вручную редактировать путь в адресной строке броузера.
- ввиду того, что фреймовая структура сайта придает ему достаточно узнаваемый вид, то большинство подобных страничек выглядят достаточно однообразно.
- невозможно поставить закладку на внутреннюю страничку сайта. А это уже серьезно! Представьте, что Вы наткнулись на очень интересную статью и желаете, например, поместить ссылку в свою коллекцию или послать другу ее адрес. Так вот, ни то, ни другое Вы сделать не сможете - фреймы скрывают истинный адрес странички. Ради справедливости, нужно сказать, что этот адрес все же можно узнать, открывая ссылку в новом окне.
- проблемы отображения странички в разных версиях броузеров. От этого уже никуда не уйти и это предложение можно автоматически добавлять практически к любым расширениям HTML.
В каких случаях уместно применять фреймы?
Честно говоря, есть очень мало задач, которые нельзя решить без использования фреймов. Первоначально введенные для того, чтобы облегчить создание механизма навигации по сайту, на данный момент они, по-моему, ясно показали, что не справляются с этой задачей. Для этой цели гораздо лучше подходит технология SSI.
продолжение следует...
Автор:
Источник: Мельников М., Web-studio "Cherry-Design"
Комментарии
- 1. 07.10.05 08:50 От: in
-
> - странички сайта не индексируются обычными поисковыми системами, исключая первую страницу. Это происходит из-за того, что страница описания фреймов не содержит в себе ссылок вида ... и поисковые роботы, естественно, не могут попасть на внутренние странички.
Кто Вам это сказал? Плюньте в него!
...Робот работает со стандартными ссылками языка HTML (href, link и frame)...
http://www.yandex.ru/info/webmaster6.html
> в случае попадания не на первую страничку сайта не существует "официального" способа перейти на первую страничку сайтаЭта "проблема" решается использованием IFRAME
> невозможно поставить закладку на внутреннюю страничку сайта
??? А Вы пробовали? IE - запоминает такую закладку!!! FF, по-моему, тоже
> Честно говоря, есть очень мало задач, которые нельзя решить без использования фреймов
Самая главная такая задача - обновить часть экрана без перезагрузки всей страницы... SSI здесь не поможет. И вот вам пример ОПРАВДАННОГО использования фреймов: http://msdn.microsoft.com/library/
С другой стороны, в чем Вы, безусловно, (IMHO) правы - так в том, что не нужно фреймы использовать, кроме специальных случаев! :)