Информеры

14 мая 2009 | Рубрика: Web-разработка

Для заполнения правых и левых блоков на своем сайте зачастую в них интегрируют информеры погоды, курсов валют, нефти и драгоценных металлов. Существует несколько способов импорта информеров на свой сайт.

Наиболее простой — вставить HTML код, который можно скачать с сайта предоставляющего необходимые для нас данные. Например, информер погоды можно взять с сайта GISMETEO. Как правило, внешний информер тяжело уживается с дизайном нашего, сайта. Поэтому профессиональные web-мастера применяют второй способ — импорт и парсинг XML. Тот же GISMETEO предоставляет данные в XML формате, к которым можно легко получить доступ по HTTP протоколу.

Пишется скрипт, который обращается к серверу, получает XML, выдергивает оттуда данные и вставляет их в наш сайт. Сложность такого подхода в его реализации. Надо как минимум уметь создавать HTTP запросы на языке работы сайта и парсить XML. Еще существует несколько тонкостей, которые нужно учитывать:

  • Погода обновляется раз в несколько часов, поэтому дергать данные с сервера постоянно не нужно. Можно просто узнать когда на сервере обновляется XML и обращаться к нему сразу после обновления, сохраняя сгенерированный код в кэше.
  • Получение, парсинг и интеграция в дизайн процесс трудоемкий, поэтому нужно сохранять в кэше конечный результат полученного информера и уже его вставлять в сайт. Тогда вы только 4 раза в сутки напрягаете свой сервер для обработки данных.
  • Сервер информера может быть перегружен запросами, поэтому не спешите удалять кэш. Сначала получите и сгенерируйте новые данные, а затем заменяйте ими старый кэш.
  • Не выставляйте большое время таймаута (timeout) при HTTP запросе. Если вы поставите секунд 20, а сервер будет перегружен запросами или не сможет вам ответить по другой причине, то вы можете «повесить» свой сайт. Конечно, если импорт информера вшит в ваш движок.
  • Не выставляйте маленькое время таймаута при HTTP запросе. Если вы поставите несколько миллисекунд, то сервер информера не сможет вам вовремя ответить и вы просто останетесь без данных. Рекомендую поэкспериментировать с таймаутом, найдя наиболее оптимальное значения для вашего сайта и сервера информера.
  • Если сервер информера не доступен продолжительное время и вы не можете получить нужные данные, то смысла хранить кэш тоже нет, никому не интересны устаревшие данные. Стоит сразу позаботься о дизайне сайта без этого информера, чтобы без него не ломалась целостность структуры. Никто не должен заметить, того что информера нет.
  • Постарайтесь обращаться к серверу информера не из движка вашего сайта, а отдельным скриптом, который запускается в определенное время по cron. Тогда вашим посетителям ничего не грозит даже если сервер не отвечает.