Основы web-программирования. Лекции 14 Сергей Львович Островский
Скачать 1.82 Mb.
|
1 Лекция 2 Back in SSI “Many, many years ago…” С этих слов начинается бесчисленное количество английских сказок и исторических произведений. С них же мы начнем краткий рассказ об одной из самых “древних” технологий, имеющей отно- шение к web-программированию, — технологии SSI. Это сокращение от Server Side Includes — включения на стороне сервера. Ключевая идея SSI вам фактически уже знакома, если при изучении предыдущей лекции вы поняли ключевую идею PHP. Заключается она в следующем: HTML-файл может содержать некоторые фрагменты (директивы), кото- рые обрабатываются на стороне сервера, а браузеру отправляется результат их обработки. Все точно так же, как и с PHP, только для обработки директив SSI ничего дополнительного (как для PHP — интерпретатор PHP) не требуется, всю работу выполняет сам web-сервер (напомню, в нашем случае — Apache). В принципе web-сервер можно настроить таким образом, чтобы он искал и при необходимости обрабатывал ди- рективы SSI в любом HTML-файле. Но так делают крайне редко, поскольку это сильно замедляет работу. Типичный вариант, который в настройках Denwer установлен “по умолчанию”, заключается в том, что директивы SSI обрабаты- ваются в файлах с расширением shtml. Итак, давайте поставим эксперимент. Прежде всего в каталоге home (помните, о чем речь? Мы много эксперимен- тировали с этим в первой лекции) создайте каталог myschool. Это будет основной каталог для примеров этого занятия. В нем создайте каталог www, а в нем — ssi. Запустите Denwer. Теперь поместите в каталог ssi два файла: Файл ssidemo.shtml Тестируем SSI1 Пример задачи автОматизации: дОСка ОбъявЛений шкОЛьнОгО Сайта Мы легко можем смоделировать соответствующую ситуацию, изменив расширение файла с shtml на htm. (Напом- ню, что директивы SSI интерпретируются только в файлах с расширением shtml — так настроен Denwer.) Результат эксперимента с переименованием показан на рис. 2. Рис. 2. Web-сервер не обработал директиву и вернул ее браузеру AS IS. А тот воспринял ее просто, как комментарий Как можно использовать технологию SSI на пользу дела? Фактически мы это уже продемонстриро- вали. Даже в эпоху расцвета SSI самой используемой директивой была include , а типичным ее приме- нением — создание “каркасов” (шаблонов) сайтов. Рассмотрим, например, типичный макет школьного сайта (внимание! Наполнение этого макета — это, конечно, шутка, — мне просто требовалось как-то наполнить шаблон текстом). Рис. 3. Макет “школьного” сайта 20 Лекция 2 На макете, показанном на рис. 3, легко выделить ряд независимых содержательных блоков. Например, к таковым можно уверенно отнести левое навигационное меню, центральный блок (в него я поместил замечательную притчу Э.Дийкстры о первом программисте. Если кто не читал — очень рекомендую, я для этого специально привел текст файла welcome.htm), блок объявлений и все остальное. Остальное — это каркас, включающий три эти блока. Понятно, что все блоки можно разместить и в одном html-файле. Но это не слишком удобно. Почему? Посмотрим на те же объявления. Если сайт “живой”, их приходится добавлять часто. А это значит, что каждый раз надо “залезать” внутрь довольно большого файла, искать в нем место под очередное объявление и аккуратно его туда вставлять. Учитывая, что основной каркас страницы представляет собой таблицу, а блок объявлений — отдельная таблица (как и навигационное меню), запутаться в трех (или более) “соснах” (таблицах) не так сложно. Вот тут и приходит на помощь SSI. Куда как проще разместить блоки, составляющие эту страницу, в отдельных файлах и собрать их вместе посредством директивы include Я реализовал это следующим образом. Страница, показанная на рис. 3, состоит из четырех файлов: index.shtml (основной каркас), lmenu.htm (левое навигационное меню), welcome.htm (центральный блок) и notices.htm (блок объ- явлений). Наверное, это избыточно, но я все же не пожалею места и приведу здесь содержимое всех четырех файлов (можно было бы, конечно, ограничиться только файлом index.shtml, но я хорошо знаю, как иногда раздражают слова “легко видеть”, когда ты только начинаешь и тебе совсем даже не легко). Файл index.shtml
|