div.main {margin-left: 20pt; margin-right: 20pt}
Эмуляция SSI
Алексей Годовник, http://mysite.hut.ru/
Наряду с неоспоримыми достоинствами бесплатного хостинга, есть и существенные недостатки.
Больше всего меня раздражает отсутствие SSI. Если и вас тоже, сообщаю: выход есть! И довольно
простой, как в поговорке про все гениальное.
Для тех, кто не в курсе, поясняю.
Вам наверняка хоть раз в жизни приходилось собирать мозаику. Ну, или хотя бы соединять вместе несколько частей в одно целое.
В этом и заключается идея SSI - собирать свой сайт из HTML-фрагментов.
Для чего это нужно? Как правило, на каждом сайте некоторые детали присутствуют
на всех страничках сайта. У меня, например, таким является оглавление слева. И web-мастеры при создании новых документов просто переписывают
их туда. А если вдруг захочется изменить внешний вид, приходится вносить изменения
во все файлы. А если сайт содержит много информации, то реконструкция
сайта превращается в тягомотину. Можно, конечно, использовать фреймы (про них
рассказано в "HTML за полчаса", но у них
есть свои недостатки.
Предлагаемый мною способ, конечно, далек от совершенства,
но он лучше, чем ничего, да и не так уж плох (на мой субъективный взгляд).
Итак, все дело в следующем: как вы знаете (а если не знаете, то я с удовольствием вас информирую),
в HTML документ можно встраивать скрипты, написанные на различных языках.
Один из них - JavaScript - довольно прост и имеет то преимущество,
что его понимают все браузеры, а для выполнения используются ресурсы
компьютеров ваших посетителей.
Так вот, скрипт на JavaScript не обязательно встраивать
в HTML документ, что бы там ни было написано в инструкции по его использованию.
Он может располагаться в отдельном файле, следовательно, на него можно
ставить ссылку/сноску из любого другого документа, следовательно, его можно написать только
один раз и использовать в неограниченном количестве документов.
Наши файлы-кусочки будут иметь содержание document.write('ваш HTML-код'); или
document.write("ваш HTML-код");
количество таких записей не ограничено, внутри кавычек/апострофов вы пишете строчку
с вашим HTML. Естественно, что если вам надо использовать кавычки, вы берете первый вариант,
а если апострофы, то второй. Файл с кусочком встраиваемого HTML сохраняете
в виде name.js, где вместо name используете
любую комбинацию цифр и латинских букв.
Когда вы написали все фрагменты, начинаем их склеивать.
В том месте, где должен быть нужный элемент, пишем
<script language="JavaScript" src=source></script>,
где source - адрес этого фрагмента.
Таким образом, ваша страничка (в идеальном варианте) будет иметь следующий вид
Название страницы
...
По-моему, вполне элегантно.
Только старайтесь, чтобы ваши кусочки были осмысленными, самостоятельными и логически законченными. Потому что
если написать какой-нибудь открывающий тег в одном, а закрывающий в другом фрагменте, скорее всего не сработает.
Не бойтесь того, что общий размер странички увеличивается из-за многократного повторения
document.write. Так как страничка состоит из нескольких кусочков, ее загрузка будет происходить даже
немного быстрее.
Если захотите что-либо уточнить, пишите. НО!!! Я не буду отвечать на вопросы
типа "я все сделал так как написано, но ничего не работает". Значит, не совсем так.
Шевелите извилинами и ищите ошибки. Самая распространенная - многие забывают, что в адресах и в JavaScript большие и маленькие буквы РаЗлИчАюТсЯ.
Пример использования можно посмотреть здесь
|