Получение сводки погоды из Сети
Кроме вышеупомянутых приватных членов, класс Weatherlnf о имеет не¬сколько приватных методов. Один из таких методов, _getWebWeather(), обращается за рассылкой к удаленному узлу и возвращает строку, со¬держащую информацию из рассылки:
private string _getWebWeather()
string xmlStr = String.Empty;
return xmlStr;
Класс Weatherlnfo
Класс Weatherlnfo обеспечивает методы получения информ службы Weather.com XML. Подобно классу WeatherSettings, ко тор Weatherlnfo принимает единственный аргумент, содержащий ку пути к приложению:
public WeatherInfo(string path) _path = path;
_cachedFile = String.Format("{0}/weather_cache.xral",_path); .settings = new Settings(path);
>
Класс WeatherSettings
Класс WeatherSettings содержит всю информацию, необходимую для мучения сводки о текущем состоянии погоды с сайта Weather.com.
Программная часть на стороне сервера
Серверный сценарий можно писать на любом .NET-совместим ке, но мы выберем С#. Основу серверной части приложения с ют два класса, размещенные в пространстве имен Wrox. Profes Weather. Эти классы можно скомпилировать в виде отдельной биб-лвотеки или включать их в непосредственно приложение.
SDK Weather.com
Начнем с того, что отыщем источник информации о погоде. Н самый популярный - это служба погоды Weather.com XML. к этому ресурсу мы обратимся при разработке виджета с инфор о погоде. Порядок работы со службой Weather.com изложен в их водстве. Для того чтобы получать сводку погоды, надо зареги* ваться на сайте.
Создание виджета с информацией о погоде
Сводки погоды достаточно популярны, так что задача вполне осмыс¬ленная. Множество приложений и виджетов задуманы исключитель но ради этой цели. Технология Ajax, естественно, отлично по для создания подобного рода виджетов.
Вставка виджета со сводкой новостей
В основе виджета лежит сценарий на языке РНР, поэтому ус виджета ничуть не сложнее закачки на сервер всех необходг лов и самой страницы HTML. (Разумеется, на сервере должен ( тановлен интерпретатор РНР.) Код JavaScript и CSS добав страницу с помощью тегов и :
Оформление внешнего вида виджета со сводкой новостей
Прежде чем перейти к каскадным таблицам стилей, рассмотрим струк¬туру кода HTML:
div class="newsTickerContainer">
- ,
Добавление содержимого
Последний метод класса NewsTickerFeed - это уже упоминавпп тод populateTicker(), вызываемый из метода pollQ. Этот метод] мает в виде аргумента значение свойства responseText объекта; и разбирает его с помощью объекта XParser:
NewsTickerFeed.prototype.populateTicker = function (sXml) { -var oParser = new XParser(sXml, true); .
Получение новой информации
Перед завершением конструктор класса NewsTickerFeed вызывает ме¬тод ро11(), который выполняет запрос к серверной части приложения. Он автоматически проверяет наличие обновлений каждые полторы минуты.
NewsTickerFeed.prototype.poll = function () { var oThis = this;
var oReq = zXmlHttp.createRequestO; oReq.onreadystatechange = function () { if (oReq.readyState ==4) { if (oReq.status == 200) {
oThis.populateTicker(oReq.responseText);