Кроме того, есть причины чисто экономического характера. На коммерческих хостингах поддержка SSI имеется практически всегда, даже в самых дешевых тарифах. Тариф с PHP может стоить в два-три раза дороже. SSI часто есть даже на бесплатных хостингах, что не может не радовать владельцев страничек типа «Я и моя собака», если собак много.
Конечно, когда сайт уже сформирован, придется потратить некоторое время, переписывая страницы под SSI. Но эта работа себя оправдает. Единственный недостаток — вы не сможете просмотреть сайт на своем компьютере. То есть увидеть его можно, но все SSI-вставки будут пропущены. Браузер интерпретирует их как комментарии и просто игнорирует. Для отладки придется ставить локальный web-сервер. Но это не такое уж большое неудобство.
Перейдем к другим возможностям SSI, которые принципиально недоступны «чистому» HTML. Скорее всего, вы видели на некоторых сайтах надпись «Последний раз страница обновлялась…». Если это не уловка, реализованная через JavaScript и привязанная к дате компьютера пользователя, то реализовать ее в HTML невозможно. В SSI это решается просто, нужно только указать имя файла:
Последнее обновление: <!--#flastmod file="index.shtml"-->
В окне браузера мы увидим что-то вроде:
Последнее обновление: Sunday, 30-Mar-2008 18:05:04 Московское время (зима)
Формат представления даты можно поменять, для этого есть директива:
<!--#config timefmt="format"-->
Наиболее употребительные значения формата такие: «%D» — дата в формате 03/30/08, «%r» — время в формате 18:05:04 PM.
С помощью SSI можно получать доступ к некоторым специальным значениям, которые называются переменными окружения. Там довольно много любопытного. Например, переменная HTTP_USER_AGENT содержит идентификатор используемого браузера и операционной системы, а REMOTE_ADDR — IP-адрес посетителя сайта. Получить список всех переменных окружения можно SSI-директивой:
<!--#printenv -->
Самым приятным является то, что SSI-директивы включают в себя конструкцию if/else. Полный ее синтаксис такой:
<!--#if expr="УСЛОВИЕ1″ -->
HTML-код, который будет выводиться, если УСЛОВИЕ1 истинно
<--#elif expr="УСЛОВИЕ2″ -->
HTML-код, который будет выводиться, если УСЛОВИЕ1 ложно, а УСЛОВИЕ2 истинно
<--#else -->
HTML-код, который будет выводиться, если все условия ложны
<--#endif -->
Вот это уже совершенно другие возможности! Мы можем проверять версию браузера пользователя и выдавать ему наиболее подходящий html-код. К сожалению, непрофессиональные сайтостроители нечасто обращают внимание на поддержку всех возможных браузеров. Но и им есть что предложить.
Как иногда хочется, чтобы содержимое сайта хоть как-то менялось, создавая видимость профессионального программного движка. Например, менялся бы рекламный блок на странице, выдавая разным посетителям разную информацию. Вот в этом нам и поможет SSI-директива if/else. Для этого нужно только подобрать подходящее условие. Наиболее просто привязаться к часам сервера — ведь время постоянно меняется. Добраться до часов сервера напрямую не получится, поэтому используем переменную окружения DATE_GMT. В списке форматов времени используем «%S» — только секунды. Теперь в нашем распоряжении есть все необходимое. Вставляем SSI-код:
<!--#config timefmt="%S"-->
<!--#if expr = «($DATE_GMT<20)» -->
Рекламный блок 1
<!--#elif expr = «($DATE_GMT<40)» -->
Рекламный блок 2
<!--#else -->
Рекламный блок 3
<!--#endif -->
У нас получился рекламный блок, который меняется три раза в минуту. Посетители на сайт заходят бессистемно, поэтому можно считать, что каждый получает случайную рекламу. Количество условий можно увеличить, хоть по одному на каждую секунду. А можно использовать формат «%M» и менять рекламу несколько раз в час.
Полный список всех SSI-команд, форматов, примеров использования легко найти в Интернете. Поверьте, освоить SSI очень просто и дело того стоит!
Сегодня попробовал на практике применить SSI. Просто вынес в отдельные HTML файлы блоки из кода страниц моего существующего сайта, а вместо них теперь вставил в код страницы < !--#include virtual="/xxxx.html" -->(здесь xxxx - название документа. После открывающей угловой скобки здесь поставил пробел, иначе фраза не отображается ). Все работает!!! Как все просто!
Олег, спасибо. Изучу обязательно все возможности этой технологии.
Оценка статьи: 5
0 Ответить
Олег!
Обе статьи теперь у меня в архиве полезной информации.
Обязательно применю на практике.
Пять
Оценка статьи: 5
0 Ответить
Спасибо за такое доступное изложение сути SSI. До настоящего времени не пользовался им, почему-то предполагал, что это довольно трудная технология. Оказывается, все наоборот. Обязательно попробую.
Оценка статьи: 5
0 Ответить