Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
198
Добавлен:
10.05.2015
Размер:
9.19 Mб
Скачать

22.6.3. Управление обновлениями и уведомление

Проверяя, нет ли обновлений, Internet Explorer сравнивает веб-фрагмент с его версией в кэше. На платформе Windows RSS новости и веб-фрагменты обновляются периодически: по умолчанию через каждые 24 часа. Однако если веб-фрагмент содержит свойство ttl, то в подсистеме загрузки веб-каналов расписание обновления настраивается с использованием указанного значения. Частоту обновления можно также настроить в диалоговом окне "Свойства веб-фрагмента".

Длительность и частота проверок обновлений регулируются с помощью следующих элементов веб-фрагмента:

  • свойство ttl;

  • свойство endtime.

22.6.3.1. Свойство ttl

Срок жизни (TTL) – это количество минут, в течение которых веб-фрагмент считается актуальным. Если пользователь не изменяет интервал обновления, подсистема загрузки веб-каналов рассматривает это значение как рекомендуемую частоту обновления.

<p>Обновление происходит каждые <span class="ttl">60</span> минут.</p>

Минимальный интервал проверки обновлений в браузере Internet Explorer составляет 15 минут.

22.6.3.2. Свойство endtime

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

<abbr class="endtime" title="2008-07-25T17:30:00-07:00">(friendly date format)</abbr>

Для указания строки даты и времени используется следующий общепринятый формат: ГГГГ-ММ-ДДВчч:мм:сс[Z|(+|-)чч:мм].

  • ГГГГ – 4 цифры, обозначающие год;

  • ММ – месяц, от 01 до 12;

  • ДД – день, от 01 до 31;

  • "В" – разделитель даты и времени;

  • чч – часы, от 00 до 23;

  • мм – минуты, от 00 до 59;

  • сс – секунды, от 00 до 59 (необязательно);

  • один из следующих вариантов:

    • "Z" – всемирное координированное время (UTC) или время по Гринвичу (GMT) ("ноль");

("+"|"-")чч:мм – часы и минуты смещения часового пояса.

22.7. Создание страницы Новости в Интернет-магазине

Продемонстрируем возможности web-slice на примере создания страницы новостей. Для этого добавим в masterpage'е новый пункт меню и создадим страницу news/News.aspx.

<asp:Content ID="Content2" ContentPlaceHolderID="column_l_placeholder" Runat="Server">

<asp:Panel ID="PanelNews" runat="server" CssClass="hslice">

</asp:Panel>

</asp:Content>

Все, что есть на странице – это панель в основной области, в качестве CSS-класса которой указан hslice. При рендеренге страницы вместо панели будет подставлен тег div с соответствующим классам. Весь остальной код поместим в бэк-код страницы. В качестве новостей будем отображать модели продуктов магазина, отсортированные по дате модификации. Такой подход применяется в связи с тем, что, как правило, на настоящих сайтах те же новости модераторы сайта вводят на специальных формах и сохраняют их в БД, а уж сам движок сайта формирует на основе БД страницу с новостями.

protected void Page_Load(object sender, EventArgs e)

{

DataClassesDataContext dcdc =

new DataClassesDataContext("Data Source=localhost;Initial Catalog=AdventureWorks;Integrated Security=True");

var query = from productModel in dcdc.ProductModels orderby productModel.ModifiedDate select productModel;

var newquery = query.Take(6);

foreach (ProductModel pm in newquery)

{

LiteralControl lc = new LiteralControl

("<p class ='entry-title'><b>"+

pm.Name+"</b></p>"+"<div class='entry-content'>"+

((pm.ProductModelProductDescriptionCultures.Count>0) ?

pm.ProductModelProductDescriptionCultures[0].ProductDescription.Description : "")+

"</div>");

PanelNews.Controls.Add(lc);

}

}

В нашу панель с новостями мы динамически добавляем LiteralControl'ы, которые при отрисовки страницы просто превращаются указанную в их конструкторе разметку. В данном случае, для каждого из товаров будет отображен заголовок с названием и его описание, если оно есть. При этом параграфам с заголовками задан класс "entry-title", а div'у – "entry-content". Теперь перейдем на страницу новостей и наведем мышкой на текст – он будет обведен рамкой и появится копка добавления web-slice в браузер (рис. 22.4).

Рис. 22.4.  Отображение веб-фрагмента Новости на странице Adventure Works в IE8

После добавления, в панели инструментов появится новый раздел (рис. 22.5).

Рис. 22.5.  Отображение содержимого веб-фрагмента Adventure Works в панели избранного в IE8

В нем можно увидеть последние новости, обновить их или перейти на страницу с новостями, причем для работы не обязательно находится в данный момент на самом сайте. Частота автоматического обновления – раз в сутки, но ее можно легко изменить. Для этого надо нажать правой кнопкой мыши по панели с web-slice, и выбрать меню "Свойства". В открывшемся окне можно указать необходимую частоту обновления (рис. 22.6).

Рис. 22.6.  Свойства веб-фрагмента Adventure Works в IE8

Для программной установки частоты, как уже отмечалось, необходимо где-либо внутри div'а с классом hslice вставить код:

<span class="ttl">15</span>

Класс ttl указывает браузеру, что число, указанное в теге <span> – время обновления, в данном случае – 15 минут.