Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПвИ / Конспект лекций.doc
Скачиваний:
224
Добавлен:
01.06.2015
Размер:
1.05 Mб
Скачать

Visual Basic .Net

Private Sub Button1_Click (ByVal sender As System.Object, ByVal e As _ System.EventArgs) Handles Button1.Click

'Сохранить число щелчков в переменной состояния Session.

Session("Clicks") = Session("Clicks") + 1

'Отобразить число щелчков.

Response.Write("Number of clicks: " & Session("Clicks"))

End Sub

Visual c#

// Код из файла Global.asax.cs

protected void Session_Start(Object sender, EventArgs e)

{

// Инициализировать переменную состояния Clicks Session.

Session["Clicks"] = 0;

}

// Этот код взят из файла StateNEvents.asax.cs

private void Button1_Click(Object sender, System.EventArgs e)

{

// Увеличить число щелчков,

Session["Clicks"] = (int)Session["Clicks"] +1;

// Показать число щелчков.

Response.Write("Number of clicks: "+Session["Clicks"] + "<br>");

}

В переменных состояния можно хранить данные любого типа, от обычных целочисленных значений до объектов. Поскольку переменные состояния относятся к глобальным, необходимо выработать стратегию их использования в приложении.

Замечание. Как правило, в программах на Visual C# переменные состояния Application следует инициализировать перед использованием. Например, перед преобразованием типов (int)Session[«Clicks»] переменную состояния Clicks необходимо инициализировать, в противном случае во время выполнения вы получите сообщение об ошибке.

События Application и Session

Код, обрабатывающий события объектов Application и Session, можно поместить в файл Global.asax. События Application используются для инициализации объектов и данных, которые должны быть доступными всем текущим сеансам Web-приложения. События Session служат для инициализации данных, которые нужно хранить в пределах одного сеанса, не делая их доступными другим сеансам. Перечислим обработчики различных событий Application, с указанием обстоятельств, при которых они вызываются:

Имя

Когда вызывается

Application_Start

Первый пользователь открыл начальную страницу Web-приложения

Application_End

С приложением больше никто не работает

Applieation_

BeginRequest

В начале каждого запроса к серверу. Запрос происходят каждый раз, когда браузер открывает какую-либо страницу приложения

Application_

EndRequest

В конце каждого запроса к серверу

Session_Start

Новый пользователь открыл начальную страницу приложения

Session_End

Пользователь покинул приложение, закрыв браузер, либо наступил тайм-аут по бездействию

В приложениях Web Forms сеанс (session) представляет уникальный экземпляр браузера. Если пользователь запустит у себя на компьютере несколько экземпляров браузера и откроет в каждом из них страницы Web-приложения, для каждого экземпляра браузера будет создан отдельный сеанс.

Чтобы увидеть события Application и Session в действии, добавьте в файл Global.asax проекта Web Forms следующий код:

Visual Basic .Net

Sub Application_Start (ByVal Sender As Object, ByVal E As EventArgs)

‘Зарегистрировать запуск приложения.

Application("AppCount") = Applicaion("AppCount") + 1

End Sub

Sub Session_Start(ByVal Sender As Object, ByVal E As EventArgs)

‘Подсчитать сеансы.

Application("SessCount") = Application("SessCount") + 1

‘Показать число экземпляров приложения.

Response.Write("Number of applications: " & _

Application("AppCount") & "<br>")

' Показать число сеансов.

Response.Write("Number of sessions: " & _

Application("SessCount") & "<br>")

End Sub

Sub Session_End(ByVal Sender As Object, ByVal E As EventArgs)

'Уменьшить число сеансов.

Application("SessCount") = Application("SessCount") - 1

End Sub

Соседние файлы в папке ПвИ