На главную страницу | Интернет | Хостинг | Сервисы JavaScript + CGI вместо SSI |
SSI является единственным нормальным способом вставки внешнего HTML-кода внутрь страницы. К сожалению, не на всех хостингах разрешено использование SSI, что связывает руки многим веб-мастерам. Здесь я хочу предложить компромиссный вариант, а именно: вместо SSI использовать JavaScript. Сразу скажу, что так красиво, как с SSI, не получится, но, как говорится, "на безрыбье...". Сразу скажу, что идею придумал не я: почерпнул я ее у сайтов, предлагающих другим сайтам вставить свой блок новостей. Итак, идея основана на том, что в HTML-страницу нельзя вставить (на уровне клиента) внешний HTML-блок (что, по-моему - большой недостаток стандарта HTML), но можно вставить внешний JavaScript. Например, так: <SCRIPT LANGUAGE="JAVASCRIPT" src="js.js"> </SCRIPT> При обработке этих строчек клиент должен загрузить файл js.js, отработать его как скрипт и вставить результат в выводимый документ. Как это не печально, в файле js.js не может быть просто фрагмент HTML-кода, а должен быть именно скрипт, выводящий этот фрагмент. Скрипт довольно простой, но некоторые "заморочки" все-таки есть. Итак, JavaScript-код, выводящий HTML, довольно простой, и выглядит как: document.write ('строка_HTML-кода\n'); document.write ('строка_HTML-кода\n'); и т.д. Можно, конечно, написать и так: document.write ('строка_HTML-кода\n строка_HTML-кода\n...'); это меньше по объему, но, во-первых, не так красиво, во-вторых, строчка получается длинной, неудобной для редактирования. Вышеуказанная заморочка заключается в том, что не все символы HTML-кода можно передавать "как есть". Так, символ апострофа будет воспринят как конец строки и вызовет ошибку. Кавычки также вызовут ошибку. Поэтому зарезервированные символы должны ставиться после обратного слэша - прямо как в PERL :) Так, HTML-строка <INPUT type="submit"> будет выглядеть в JavaScript-варианте как: document.write ('<INPUT type="submit">\n'); Если у Вас есть возможность запускать CGI-скрипты, этот процесс можно автоматизировать, используя специальный скрипт, "готовящий на лету" подобные JavaScript-ы из обычных вставляемых файлов. Вариант такого скрипта в моем исполнении Вы можете найти здесь Можете, конечно, и вручную составить JavaScript-фрагменты... В таком случае на вашем сервере может вообще не быть какого бы то ни было скриптинга - ни CGI, ни SSI, и этот метод будет работать. Теперь о недостатках. А они, надо сказать, существенные... В самом начале я говорил о том, что этот подход - далеко не SSI. И вот почему. Главное отличие в том, что: 1. SSI обрабатывается на сервере. Для пользователей и поисковых машин, обращающихся к Вашему сайту по HTTP, нет никакой разницы, сделана ли эта страница на SSI или это просто "сплошной" HTML-код - к ним попадет уже готовая страница: сервер соберет ее из фрагментов и скажет, что так оно и было :) 2. JavaScript загружается браузером и исполняется им же. Этот механизм работает на уровне клиента, а значит, не надежен. Если у посетителя отключен JavaScript, то он просто не увидит этого "инклюда". Поисковые машины также не будут исполнять этот скрипт и индексировать его результат (собственно, это можно обратить и во благо...). Кроме того, если пользователь сохранит страницу на диск, не сохранив JavaScript, он в дальнейшем также не увидит этого "инклюда". Слава Богу, что в недостатки нельзя отнести различия JavaScript-объектных моделей NN и IE - благо скрипт очень уж простой :) Остается утешать себя одним достоинством этого метода: таким образом можно вставлять документы не только со своего сервера, но и с любых других, как это и делают с теми же новостями. (c) Андрей Черный angel07@inbox.ru |
На главную страницу | Интернет | Хостинг | Сервисы
|