Программное обновление части страницы через определенные интервалы времени

Из всех методов, которыми обладает элемент управления UpdatePanel, наиболее важным является Update(). Как следует из названия, этот метод производит обновление панели. Одно из возможных применений этого метода – обработка события Tick элемента управления Timer:

(asp:Timer ID="FiveSeconds" Interval="5000"
OnTick="UpdateContents"
runat="server" /)

После этого остается только написать на стороне сервера самый обычный обработчик события ASP.NET, который будет вызывать метод Update() элемента управления UpdatePanel:
protected void UpdateContents(object o, EventArgs e)

{
if (new Random().Next(0, 4) == 1) {
UpdatePanel1.Update();
}
}

Этот фрагмент обновляет панель (и изображение на экране, которое видит пользователь) в среднем при каждом четвертом запросе. Компонент Timer вызывает обработчик события каждые пять секунд. После этого программный код случайным образом определяет, следует ли выполнить фактическое обновление панели в текущем вызове. В реальности вы бы скорее сначала проверили, изменились ли определенные данные (в базе данных или в файле), а затем при необходимости включали обновление.




Элемент управления ASP.NET AJAX – UpdatePanel поддерживает два режима работы, установить которые можно с помощью атрибута UpdateMode:

Always
Содержимое элемента управления UpdatePanel будет обновляться после каждой передачи данных (поведение по умолчанию).
Conditional
Содержимое элемента управления UpdatePanel будет обновляться только при обработке событий, то есть при обращении к методу Update() (как в данном примере) или при обновлении родительской панели, в которую вложен данный элемент UpdatePanel.

Вообще в режиме Conditional между сервером и клиентом передается меньше данных, что способствует повышению производительности элемента UpdatePanel. По этой причине всегда, когда это возможно (то есть когда обновление панели происходит в результате обработки событий или при непосредственном обращении к методу Update()), используйте UpdateMode="Conditional".

В примере 6.3 демонстрируется полный программный код, управляющий обновлением элемента UpdatePanel, обновляемый через случайные интервалы времени.

Пример 6.3. Программное обновление панели UpdatePanelTimerCode.aspx
<%@ Page Language="C#" %>
"http://www.w3.org/TR/xhtml1/DTD/xhtml1?transitional.dtd">
ASP.NET AJAX

(body)
(asp:ScriptManager ID="ScriptManager1" runat="server")
(/asp:ScriptManager)
(asp:UpdatePanel ID="UpdatePanel1" runat="server"
UpdateMode="Conditional")

(asp:Timer ID="FiveSeconds" Interval="5000"
OnTick="UpdateContents"
runat="server" /)
(asp:Label ID="CurrentTime" runat="server" /)

(/asp:UpdatePanel)

(/body)
.



Оцените статью: (0 голосов)
0 5 0

Статьи из раздела ASP.NET AJAX на эту тему:
Обновление части страницы
Обновление части страницы через определенные интервалы времени
Отображение экранной заставки в период ожидания
Создание обновляемой области страницы
Управление асинхронными запросами