У природы нет плохой погоды
Продолжаем прокачивать сайт) На этот раз добавим на сайт такую полезную штуку, как прогноз погоды. Но сначала, одно дополнение к курсам валют. Изначально реализация предполагала вывод всех курсов на странице сразу — три основных в видимом диве, и остальные (порядка 20шт) в невидимом, который становится видимым при нажатии линки «Еще>». Это не продуктивно и увеличивает, хоть и не на много, объем страницы. Добавил аякс — теперь на странице статично выводятся только три основных курса, остальные подгружаются аяксом при нажатии «Еше». После захлопывания второй раз уже не подгружаются, само собой. Плюс, декорировал эффект схлопывания — теперь это происходит плавно. Сделать это проще простого. В jQuery есть функциии slideDown и slideUp. Вызываем jQuery(‘#ourDiv’).slideDown() и блок с id=’ourDiv’ красиво схлопывается.
Вернемся к прогнозу погоды. Сделать это можно несколькими способами. Самый простой — установить так называемый информер. Простота реализации заключается в том, что, все, что нужно сделать, чтоб погода появилась на вашем сайте — это установить код информера в хтмл-страницу. Код предоставляет владелец информера, думать ничего не нужно, бац — и вот тебе. У способа есть существенный недостаток: внешний вид информера никак не поменять, это будет картинка-баннер, фиксированного размера. Нет, конечно вам представляются несколько вариантов информера, но все равно, не айс. Чтобы иметь возможность добавить прогноз, не разрушающий обший дизайн, нужно воспользоваться как всегда xml-фидом. Я его взял с сайта gismeteo. Вот здесь _http://informer.gismeteo.ru/getcode/xml.php?id=27612 заказываем нужный город(а), получаем url xml-фида для этого города (например, _http://informer.gismeteo.ru/xml/26063_1.xml для Санкт-Петербурга), а далее — дело техники. Пишем робота, который забирает фид, парсит и складывает в базу, настраиваем отображение. Ссылки для фидов разных городов я сложил в общей таблице фидов, и робот первым делом выбирает из этой таблицы все строки с типом weather, а потом начинает грабить фиды. Вот так вот незамысловато. Ну конечно код отображения пришлось помучать — там было несколько неоднозначных и противоречивых моментов. Например, в фиде на сутки отводится четыре записи (для четырех разных моментов времени в течение дня). Задача, отобразить из выборки ближайший к текущему моменту прогноз, следующий замер (в виде строки «вечер», «утро», «день», «ночь») и завтрашний прогноз. Причем, желательно за один проход по recordset’у. Задача вполне решаемая, результат можете видеть у меня)). Ах да. Еще пиктограммки погоды (phenomena в терминологии фида от гисметео). Сграбил с какого-то сайта неизвестного, надеюсь, они не обидятся).
хе-хе. только сегодня читал в мартовском ][ статейку про граббинг фидов. сделано все почти-что как у вас, только там предлагалось хранить ленты в файлах. причем, использовать для этого движок базы на key-value. правда, это делалось с расчетом на загруженный сервак и с возможностью для пользователей добавлять собвственные фиды.
спасибо за коммент. у меня тоже давно руки чешутся попробовать memcached. может в следующем релизе. пока что в планах прикрутить geo-ip, чтобы показывать посетителям погоду в их регионе. начал изучать тему, понял, что не все так просто.