Loading AI tools
Из Википедии, свободной энциклопедии
Приложения ASP.NET размещаются на веб-серверах. Доступ к ним осуществляется через stateless протокол HTTP. По сути, если приложение использует stateful взаимодействие, ему необходимо осуществить управление состоянием (state management) самостоятельно. ASP.NET обеспечивает различные способы для управления состоянием приложений в ASP.NET[1]:
Необходимо проверить качество перевода, исправить содержательные и стилистические ошибки. |
Состояние приложения применяется в основном для хранения глобальных данных в рамках приложения. Оно находится в памяти сервера и позволяет хранить все типы данных .NET. Время жизни переменных совпадает со временем жизни приложения ASP.NET.
Переменные состояния приложения устанавливаются и инициализируются при событии Application_OnStart
на этапе загрузки первого экземпляра приложения и остаются доступными до тех пор, пока существует последний экземпляр приложения. Эти переменные доступны на всех веб-страницах через встроенный объект Application
и идентифицируются по их именам[2].
View state ссылается на уровень страницы механизма управления состоянием (state management mechanism), который используется HTML страницами для сохранения состояния компонентов веб-формы и widgets. При запросе на сервер текущее состояние компонентов (controls) кодируется и отправляется на сервер в скрытом поле __VIEWSTATE
. Сервер посылает назад переменную, поэтому, когда страница повторно прорисовывается (re-rendered), компоненты (controls) отображаются (render) с их последним состоянием. На серверной стороне приложение может изменить viewstate, если результаты обработки обновляют хотя бы один элемент управления на странице. Состояния каждого компонента декодируется на сервере и доступно для использования в ASP.NET страницах через коллекцию ViewState
[3].
Session state — это набор пользовательских переменных, которые продолжают существовать в течение сеанса пользователя. Эти переменные уникальны для различных экземпляров пользовательских сессий, и доступны через коллекцию Session
. Эти переменные (Session variables) можно настроить таким образом, чтобы они автоматически уничтожались по прошествии определённого времени неактивности пользователя, даже, если сессия ещё не завершена. На клиентской стороне пользовательская сессия идентифицируется при помощи cookie или при помощи ID сессии в её URL[2].
ASP.NET поддерживает следующие режимы существования переменных сессии[2]:
Session["Name"] = "Василий Пупкин"; //Session["Name"] = (object);
Session.Add("Age", 16);
//Забираем значение.
Response.Write((string)Session["Name"] + ": " + Session["Age"].ToString() + "-years old.");
Василий Пупкин: 16-years old.
Небольшое количество информации можно передавать от страницы на сервер при помощи параметров строки запроса, таким образом обеспечивая поддержку состояния. Это самый простой способ поддержки состояния в ASP.NET приложениях, охватывающий только одну страницу. Если пользователь закроет браузер, состояние утрачивается (если не применять дополнительные приёмы по сохранению данных состояния, например, в cookie). Недостатками этого метода являются:
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.