Библиотека Интернет Индустрии I2R.ru |
|||
|
Bведение в SSIУ всех, кто когда-либо начинал более или менее серьёзно заниматься созданием вебстраниц, обязательно возникала мысль - а как неплохо бы было, если бы повторяющиеся фрагменты HTML-кода можно было бы писать только по одному разу - чтобы затем они вставлялись бы в нужные места страниц автоматически. Самые продвинутые пытались воспользоваться Java-скриптами, чтобы добиться этого - но тогда страницы начинали растекаться жиром на десятки килобайт, а браузеры посетителей захлёбывались в сложном и обьёмном коде скриптов.з> Между тем решение проблемы давно уже было - правда клиентам бесплатных хостингов оно не было доступно. На Webservis.ru оно есть и зовут его "SSI" - "Server Side Includes". Перевести это можно, в принципе, как «сборкой страниц занимается вебсервер». Назначение технологии SSI - указать вебсерверу, какой фрагмент взять, и куда его приткнуть, прежде чем выдать его посетителю страницы. Так, ни на одной моей странице нет кода, который отвечает за показывание баннера - а вы его видите, и не один, а даже два. Просто на каждой из моих страниц вверху и внизу есть фрагмент <!--#include virtual="fragments/banner.html"-->. Когда ваш браузер попросил у вебсервера Webservis.ru страницу, на которой вы сейчас находитесь, сервер обнаружил эту метку в тексте страницы. В ней содержится указание взять из подкаталога Fragments файл banner.html и вставить его вместо этой метки. Поэтому если мне вдруг когда нибудь захочется поменять баннер, мне будет достаточно изменить один только файл banner.html - а менять все страницы не понадобится совершенно. Ещё одно возможное применение SSI - с его помощью можно выводить различную информацию о странице. Так, команда <!--#flastmod file="creating-ssi.shtml"--> вставит в текст страницы число, когда эта страница последний раз обновлялась. Точно так же можно выводить название этой страницы и путь к ней, её размер и много чего ещё. Но давайте по порядку. Итак, как вы могли увидеть, SSI-команды вставляются в текст страниц, как обычные комментарии, внутри тэга Вот список основных SSI-команд: #include fileВставляет файл из той же самой папки. Так, #include virtualВ отличие от предыдущей команды эта позволяет вставлять файлы из других папок. Так, #fsize fileВыводит размер файла (формат числа указывается командой config sizefmt). Так #flastmod fileВыводит дату последнего обновления файла (формат числа указывается с помощью директивы config datefmt). #exec cmdЗапускает указанную программу и вставляет выведенные ей строки в текст страницы. Например, <!--#exec cmd="date"--> #exec cgiЗапускает указанный скрипт и вставляет результат его работы в страницу. Но лучше пользуйтесь для этого директивой include virtual (exec cgi может иногда не работать). Так, скрипт, который каждый раз выводит новый пример запроса для поиска в правом верхнем углу этой страницы, вызывается у меня командой #config errmsgВы, наверное, нередко встречали фразу "[an error occurred while processing this directive]" на некоторых недоделанных или неправильно работающих сайтах. Эту фразу вебсервер выводит тогда, когда он не может запустить скрипт, если в том содержатся ашипки или очепятки или же этого скрипта просто не существует. Команда config errmsg позволяет заменить эту непонятную фразу на что-нибудь более вменяемое. Советую вставлять первой строкой во все страницы, которые вы создаёте, SSI-команду <!--#config errmsg="[При открытии страницы произошла ошибка. Пожалуйста, сообщите об этом хозяину сайта.]"--> #config timefmtУказывает серверу, в каком формате выдавать дату командой flastmod. По умолчанию это что-то вроде "Sunday, 10-Sep-2000 17:58:59 Московское время (лето)". Вам же может захотеться получить дату в виде день/месяц/год. Для этого с командой config timefmt используется нужное сочетание следующих возможных параметров:
Таким образом, команда <!--#config timefmt="%d/%m/%Y, %H:%M:%S"--> укажет серверу выдавать время последнего обновления файла в таком формате - 21/11/2000, 00:42:33, а команда <!--#config timefmt="%d/%m/%y"--> - в таком - 21/11/00. #config sizefmtИзменяет формат вывода значения размера файла. <!--#config sizefmt="abbrev"--> заставляет выводить размер файла в килобайтах ( 26k), а <!--#config sizefmt="bytes"--> - в байтах (26,576) Обратите внимание на то, что команды #config sizefmt и #config timefmt влияют на все связанные с ними SSI-команды от того места, откуда они были вызваны и до самого конца страницы. Поэтому каждый вызов команд #flastmod и #fsize снабжайте своей командой #config - так проще и спокойнее. #printenvВыводит список так называемых "переменных окружения" ("environment variables") с их значениями. В их числе переменные: #echo varВыводит знчение определённой переменной. Например, http://<!--#echo var="HTTP_HOST"--><!--#echo var="DOCUMENT_URI"--> выведет адрес этой страницы - http://userguide.webservis.ru/creating-ssi.shtml. #set var valueПрисваивает новое значение переменной. Например, <!--#set var="SERVER_ADMIN" value="новый@адрес.ru"--> #if, #elif, #else и #endifПрименяется для управления выводом страницы по заданному условию. Синтаксис используется такой: Для группирования условий используются скобки. Пример: Вы пользуетесь браузером Такой фагмент выведет: Ну что, насколько меньше этот фрагмент скрипта на Java, который делает то же самое? А главное это то, что всеми этими условиями занимается сервер, а посетителю страницы выдаётся готовый результат - и он, в отличие от случая с JavaScript, когда он может посмотреть код скрипта, даже не знает, что что-то делалось со страницей. Поэкспериментируйте с SSI - и через некоторое время вы увидите, как он облегчает жизнь. Размеры страниц поуменьшатся за счёт того, что вы избавитесь от повторения общих для всех страниц фрагментов, да и затраты времени на изменения в страницах будут поменьше. Единственное, о чём стоит помнить, так это о том, что лучше не использовать SSI-команды при создании страниц в редакторах типа Front Page - они их обычно не понимают и выкидывают, и о том, что одну SSI-команду нельзя вызвать из другой (как нельзя вызвать SSI-команду из скрипта, и (скажу, забегая вперёд) скрипт из скрипта). Работу страниц с SSI-командами невозможно проверить, открыв их в вашем браузере просто с диска компьютера. SSI-команды понимает только вебсервер - поэтому для проверки их работоспособности вам придётся выгрузить их на Webservis.ru или же установить вебсервер для тестирования сайта на свой домашний компьютер. |
|
2000-2008 г. Все авторские права соблюдены. |
|