Життєвий цикл програми ASP.NET і сторінки
⚡ Розумний підсумок
Життєвий цикл застосунку та сторінки ASP.NET описує впорядковані етапи, через які проходить запит, від запуску застосунку та створення об'єкта до ініціалізації сторінки, завантаження, рендерингу та вивантаження, helping розробники розміщують код у правильному місці.

Що таке життєвий цикл ASP.Net?
Коли запускається ASP.Net-застосунок, виконується низка кроків. Ці кроки складають життєвий цикл застосунку.
Давайте розглянемо різні етапи типового життєвого циклу веб-застосунку ASP.Net.
Життєвий цикл ASP.Net
1) Запуск програми – Життєвий цикл ан ASP.NET Програма запускається, коли користувач робить запит. Цей запит надсилається до веб-сервера для програми ASP.Net. Зазвичай це відбувається, коли перший користувач вперше переходить на головну сторінку програми. Протягом цього часу веб-сервер виконує метод під назвою Application_Start. Зазвичай у цьому методі всі глобальні змінні встановлюються на значення за замовчуванням.
2) Створення об'єкта – Наступний етап – створення веб-сервером HttpContext, HttpRequest та HttpResponse. HttpContext – це просто контейнер для об’єктів HttpRequest та HttpResponse. Об’єкт HttpRequest містить інформацію про поточний запит, включаючи файли cookie та інформацію про браузер. Об’єкт 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, щоб запобігти витокам пам'яті.
Опанування цих подій робить управління станом, перевірку та налагодження набагато передбачуванішими.


