ASP.NET приложение и жизнен цикъл на страницата
⚡ Умно обобщение
Жизненият цикъл на приложението и страницата в ASP.NET описва подредените етапи, през които преминава заявката, от стартирането на приложението и създаването на обекти до инициализацията на страницата, зареждането, рендирането и разтоварването ѝ, hel.ping разработчиците поставят кода на правилните места.

Какво представлява жизненият цикъл на ASP.Net?
Когато се стартира ASP.Net приложение, се изпълняват редица стъпки. Тези серии от стъпки съставляват жизнения цикъл на приложението.
Нека разгледаме различните етапи от типичния жизнен цикъл на едно ASP.Net уеб приложение.
Жизнен цикъл на ASP.Net
1) Старт на приложението – Жизненият цикъл на an ASP.NET Приложението стартира, когато потребител направи заявка. Тази заявка е към уеб сървъра за ASP.Net приложението. Това се случва, когато първият потребител обикновено посети началната страница на приложението за първи път. През това време има метод, наречен Application_Start, който се изпълнява от уеб сървъра. Обикновено при този метод всички глобални променливи се задават на стойностите им по подразбиране.
2) Създаване на обект – Следващият етап е създаването на HttpContext, HttpRequest и HttpResponse от уеб сървъра. HttpContext е просто контейнер за обектите HttpRequest и HttpResponse. Обектът HttpRequest съдържа информация за текущата заявка, включително бисквитки и информация за браузъра. Обектът HttpResponse съдържа отговора, който се изпраща на клиента.
3) Създаване на HttpApplication – Този обект се създава от уеб сървъра. Именно този обект се използва за обработка на всяка следваща заявка, изпратена към приложението. Например, да предположим, че имаме 2 уеб приложения: едното е магазинping приложение за количка, а другото е новинарски уебсайт. За всяко приложение ще имаме създадени 2 обекта HttpApplication. Всякакви допълнителни заявки към всеки уебсайт ще бъдат обработвани съответно от всяко HttpApplication.
4) Изхвърлете – Това събитие се извиква преди екземплярът на приложението да бъде унищожен. През това време човек може да използва този метод за ръчно освобождаване на всички неуправлявани ресурси.
5) Край на приложението – Това е последната част от приложението. В тази част приложението окончателно се разтоварва от паметта.
Какво представлява жизненият цикъл на страницата на ASP.Net?
Когато се извика ASP.Net страница, тя преминава през определен жизнен цикъл. Това се прави преди отговорът да бъде изпратен на потребителя. Има поредица от стъпки, които се следват за обработката на ASP.Net страница.
Нека да разгледаме различните етапи от жизнения цикъл на ASP.Net уеб страница.
Жизнен цикъл на ASP.Net страница
- Заявка за страница – Това е моментът, в който страницата се изисква за първи път от сървъра. Когато страницата се изисква, сървърът проверява дали е поискана за първи път. Ако е така, тогава трябва да компилира страницата, да анализира отговора и да го изпрати на потребителя. Ако не е първата заявка за страницата, кешът се проверява, за да се види дали изходът на страницата съществува. Ако е така, този отговор се изпраща на потребителя.
- Начало на страницата – През това време се създават 2 обекта, известни като обекти Request и Response. Обектът Request се използва за съхраняване на цялата информация, която е била изпратена при заявката на страницата. Обектът Response се използва за съхраняване на информацията, която се изпраща обратно на потребителя.
- Инициализация на страницата – През това време всички контроли на уеб страницата се инициализират. Така че, ако имате етикет, текстово поле или други контроли във формуляра, всички те се инициализират.
- Зареждане на страница – Това е, когато страницата действително се зарежда с всички стойности по подразбиране. Така че, ако едно текстово поле трябва да има стойност по подразбиране, тази стойност се зарежда по време на времето за зареждане на страницата.
- Утвърждаване – Понякога във формуляра може да има набор за проверка. Например, може да има проверка, която казва, че списъчно поле трябва да има определен набор от стойности. Ако условието е невярно, тогава трябва да има грешка при зареждането на страницата.
- Обработка на събития за обратно изпращане – Това събитие се задейства, ако същата страница се зарежда отново. Това се случва в отговор на по-ранно събитие. Понякога може да възникне ситуация, в която потребител кликне върху бутон за изпращане на страницата. В този случай същата страница се показва отново и се извиква обработчикът на събитието Postback.
- Рендиране на страница – Това се случва точно преди цялата информация за отговор да бъде изпратена на потребителя. Цялата информация във формуляра се запазва и резултатът се изпраща на потребителя като пълна уеб страница.
- разтоварвам – След като изходът от страницата бъде изпратен на потребителя, няма нужда да се съхранява ASP.net уеб формуляр обекти в паметта. Така че процесът на разтоварване включва премахване на всички нежелани обекти от паметта.
Събития от жизнения цикъл на страницата в ASP.NET
Освен общите етапи, описани по-горе, ASP.NET генерира специфична поредица от събития на страница, които разработчиците могат да обработват в код. Познаването на реда ви помага да разположите логиката там, където тя работи правилно:
- Предварителна инициализация – задаване на главни страници и теми и създаване на динамични контроли.
- В него – всеки контрол е инициализиран; използвайте го за четене или задаване на свойства на контрола.
- InitComplete – повдига се след завършване на всички инициализации.
- Предварително зареждане – се случва преди страницата да зареди състоянието на изгледа и данните за обратното изпращане.
- Натоварване – страницата и нейните контроли са заредени; по-голямата част от логиката на страницата се намира тук.
- Контролни събития – обработват се специфични за контрола събития, като например щракване върху бутон.
- Предварително рендериране – да правите окончателни промени на страницата или контролите преди изход.
- Запазване на състояниетоЗавършено – състоянието на изгледа се запазва за всички контроли.
- направи – страницата генерира HTML изход, изпращан до браузъра.
- разтоварвам – извършва се почистване и обектите се освобождават от паметта.
Жизнен цикъл на приложението срещу Жизнен цикъл на страницата
Жизненият цикъл на приложението и жизненият цикъл на страницата работят в различни обхвати. Таблицата по-долу пояснява как се различават:
| Аспект | Цикъл на приложение на приложението | Жизнен цикъл на страницата |
|---|---|---|
| Обхват | Цялото уеб приложение | Заявка за една страница |
| Започва | При първото искане (Application_Start) | Всеки път, когато се изисква страница |
| Ключови събития | Начало_на_приложение, Начало_на_заявка, Край_на_приложение | Инициализация, Зареждане, Предварително рендериране, Разтоварване |
| Честота | Веднъж за начало и край на приложението | Веднъж заявка на страница |
Накратко, жизненият цикъл на приложението обхваща цялото приложение от стартиране до спиране, докато жизненият цикъл на страницата се изпълнява всеки път, когато потребител поиска страница.
Защо е важно да се разбере жизненият цикъл на ASP.NET
Разбирането на жизнения цикъл е от съществено значение, защото ASP.NET изпълнява кода ви в определени моменти и поставянето на логика в грешно събитие води до трудно откриваеми грешки. Ясното разбиране на последователността ви помага:
- Създавайте или конфигурирайте динамични контроли рано, в PreInit или Init.
- Задайте стойности по подразбиране в събитието Load, така че те да се рендират правилно.
- Приложете окончателните промени в дисплея в PreRender, след като всички данни са обвързани.
- Разграничавайте заявките за първо зареждане от обратните изпращания, за да избегнете двойна обработка на данни.
- Освободете ресурси и почистете в Unload, за да предотвратите изтичане на памет.
Овладяването на тези събития прави управлението на състоянието, валидирането и отстраняването на грешки много по-предсказуеми.


