Главная » Языки программирования и собственно написание компьютерных программ

Отображение времени в Web-форме с использованием технологии AJAX на Visual Basic

Мы уже обсуждали вопрос отображения времени в Windows-приложении. Тогда, для того чтобы время обновлялось каждую секунду, нами был использован элемент управления Timer. При обработке события Tick (события, когда прошел заданный интервал времени interval, равный 1000 миллисекунд, т.е. 1с) элемента управления Timer в метку Label копировалось новое значение времени, при этом изображение формы обновлялось (перерисовывалось). Когда речь идет о Web-форме, технология ASP.NET предполагает операции обратной отправки данных. Когда пользователь щелкает на кнопке или делает выбор в окне списка с включенной функцией AutoPostBack, серверу отсылается соответствующий запрос, после чего с него обратно клиенту отправляется целая страница. Если такое обращение к серверу будет происходить через каждую секунду, то возрастет объем сетевого трафика и вследствие инерции Сети пользователь будет ощущать дискомфорт. Кроме того, если на этой странице предусмотрено заполнение пользователем полей, то серверу будет отсылаться страница с частично заполненными полями.

Решение этой проблемы состоит в использовании технологии AJAX, которая обеспечивает возможность выполнения частичного визуального обновления страницы посредством поддерживаемой ASP.NET AJAX операции обратной отправки. Продемонстрируем возможность технологии AJAX на примере, когда мы имеем метку Label в Web-форме. На эту метку каждую секунду копируем новое время, но обновляем при этом не всю форму, а только метку с помощью технологии AJAX.

Решая эту задачу, запустим VB2010 и закажем новый проект из шаблона Empty ASP.NET Web Application, укажем имя Name — AJAX_Timer. К текущему проекту добавим Web-форму. Для этого в пункте меню Project выберем команду Add New Item и в появившемся окне дважды щелкнем по шаблону Web Form.

Далее, попав на вкладку конструктора Web-формы, перетащим в форму из разделаAJAX Extensions панели ToolBox элементы управления ScriptManalger, UpdatePanel. Затем на элемент UpdatePanel поместим Timer и метку Label. Теперь на вкладке файла программной поддержки WebForml.aspx.vb напишем программный код.

Отображение времени в Web-форме с помощью технологии AJAX

‘ Web-страница демонстрирует время на метке Label1. На эту метку

‘ каждую секунду копируем новое время, но обновляем при этом не всю
‘ форму, а только метку с помощью технологии AJAX.
PublicClass WebForm1
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)Handles Me.Load
Timer1.Interval = 1000 ‘ миллисекунд = 1 сек
Label1.Text = "Текущее время: " +DateTime.Now.ToLongTimeString
End Sub
Private Sub Timer1_Tick(ByVal senderAs Object,ByVal e As System.EventArgs) Handles Timer1.Tick
Label1.Text = "Текущее время: " +DateTime.Now.ToLongTimeString
EndSub
EndClass

Как видно из программного кода, при загрузке страницы задаем интервал времени, равный одной секунде. При обработке события Tick — события, когда прошел заданный интервал времени, в метку Label1 копируется новое значение времени. При этом благодаря использованию технологии AJAX обновляется не вся Web-форма, а только те элементы, которые расположены на элементе UpdatePanel.

Добавить комментарий

Ваш комментарий появится после модерации.