Cykl życia aplikacji i strony ASP.NET
⚡ Inteligentne podsumowanie
Cykl życia aplikacji i strony ASP.NET opisuje uporządkowane etapy, przez które przechodzi żądanie, od uruchomienia aplikacji i utworzenia obiektu do inicjalizacji strony, załadowania, renderowania i rozładowania.ping programiści umieszczają kod w odpowiednim miejscu.

Co to jest cykl życia ASP.Net?
Po uruchomieniu aplikacji ASP.Net wykonywana jest seria kroków. Te serie kroków tworzą cykl życia aplikacji.
Przyjrzyjmy się różnym etapom typowego cyklu życia aplikacji internetowej ASP.Net.
Cykl życia ASP.Net
1) Uruchomienie aplikacji – Cykl życia ASP.NET Aplikacja uruchamia się po wysłaniu żądania przez użytkownika. Żądanie to jest kierowane do serwera WWW w celu obsługi aplikacji ASP.Net. Dzieje się to zazwyczaj, gdy pierwszy użytkownik po raz pierwszy odwiedza stronę główną aplikacji. W tym czasie serwer WWW wykonuje metodę o nazwie Application_Start. Zazwyczaj w tej metodzie wszystkie zmienne globalne są ustawiane na wartości domyślne.
2) Tworzenie obiektu – Następnym etapem jest utworzenie obiektów HttpContext, HttpRequest i HttpResponse przez serwer WWW. Obiekt HttpContext to po prostu kontener dla obiektów HttpRequest i HttpResponse. Obiekt HttpRequest zawiera informacje o bieżącym żądaniu, w tym pliki cookie i informacje o przeglądarce. Obiekt HttpResponse zawiera odpowiedź wysyłaną do klienta.
3) Tworzenie aplikacji Http – Ten obiekt jest tworzony przez serwer WWW. To właśnie ten obiekt jest używany do przetwarzania każdego kolejnego żądania wysyłanego do aplikacji. Załóżmy na przykład, że mamy 2 aplikacje WWW: jedną z nich jest sklep.ping Aplikacja koszyka, a druga to witryna z wiadomościami. Dla każdej aplikacji utworzylibyśmy 2 obiekty HttpApplication. Wszelkie dalsze żądania do każdej witryny byłyby przetwarzane odpowiednio przez każdą z aplikacji HttpApplication.
4) Wyrzucić – To zdarzenie jest wywoływane przed zniszczeniem instancji aplikacji. W tym czasie można użyć tej metody, aby ręcznie zwolnić wszelkie niezarządzane zasoby.
5) Koniec aplikacji – To ostatnia część wniosku. W tej części aplikacja zostaje ostatecznie wyładowana z pamięci.
Co to jest cykl życia strony ASP.Net?
Po wywołaniu strony ASP.Net przechodzi ona przez określony cykl życia. Odbywa się to przed wysłaniem odpowiedzi do użytkownika. Przetwarzanie strony ASP.Net składa się z szeregu kroków.
Przyjrzyjmy się różnym etapom cyklu życia strony internetowej ASP.Net.
Cykl życia strony ASP.Net
- Żądanie strony – Dzieje się tak, gdy strona jest żądana od serwera po raz pierwszy. Podczas żądania strony serwer sprawdza, czy jest to żądanie po raz pierwszy. Jeśli tak, musi skompilować stronę, przeanalizować odpowiedź i przesłać ją użytkownikowi. Jeśli nie jest to pierwsze żądanie strony, pamięć podręczna jest sprawdzana w celu sprawdzenia, czy dane wyjściowe strony istnieją. Jeśli tak, odpowiedź jest wysyłana do użytkownika.
- Początek strony – W tym czasie tworzone są dwa obiekty, znane jako obiekty Request i Response. Obiekt Request przechowuje wszystkie informacje przesłane podczas żądania strony. Obiekt Response przechowuje informacje odsyłane użytkownikowi.
- Inicjalizacja strony – W tym czasie inicjowane są wszystkie kontrolki na stronie internetowej. Oznacza to, że każda etykieta, pole tekstowe lub inne kontrolki w formularzu internetowym są inicjowane.
- Ładowanie strony – Dzieje się tak, gdy strona jest faktycznie ładowana ze wszystkimi wartościami domyślnymi. Tak więc jeśli pole tekstowe ma mieć wartość domyślną, ta wartość jest ładowana w czasie ładowania strony.
- Walidacja – Czasami w formularzu może być ustawiony jakiś zestaw walidacji. Na przykład może być walidacja, która mówi, że pole listy powinno mieć pewien zestaw wartości. Jeśli warunek jest fałszywy, powinien wystąpić błąd podczas ładowania strony.
- Obsługa zdarzeń ogłaszania zwrotnego – To zdarzenie jest wyzwalane, gdy ta sama strona jest ponownie ładowana. Dzieje się to w odpowiedzi na wcześniejsze zdarzenie. Czasami może się zdarzyć, że użytkownik kliknie przycisk „Wyślij” na stronie. W takim przypadku ta sama strona jest wyświetlana ponownie i wywoływany jest moduł obsługi zdarzeń Postback.
- Renderowanie strony – Dzieje się to tuż przed wysłaniem wszystkich informacji o odpowiedzi do użytkownika. Wszystkie informacje zawarte w formularzu są zapisywane, a wynik przesyłany jest do użytkownika w postaci kompletnej strony internetowej.
- Rozładować – Po wysłaniu wyniku strony do użytkownika nie ma potrzeby przechowywania pliku Formularz internetowy ASP.net obiekty w pamięci. Zatem proces rozładowywania obejmuje usunięcie wszystkich niepożądanych obiektów z pamięci.
Zdarzenia cyklu życia strony ASP.NET
Poza powyższymi ogólnymi etapami, ASP.NET generuje określoną sekwencję zdarzeń stronicowych, które programiści mogą obsłużyć w kodzie. Znajomość kolejności pomaga umieścić logikę tam, gdzie działa poprawnie:
- Wstępnie zainicjowany – ustaw strony wzorcowe i motywy oraz stwórz dynamiczne kontrolki.
- W tym – każda kontrolka jest inicjowana; używaj jej do odczytywania i ustawiania właściwości kontrolki.
- InitComplete – zgłaszane po zakończeniu wszystkich inicjalizacji.
- Wstępne ładowanie – następuje przed załadowaniem stanu widoku strony i danych zwrotnych.
- Załadować – strona i jej kontrolki są ładowane. Większość logiki strony znajduje się tutaj.
- Zdarzenia kontrolne – obsługiwane są zdarzenia specyficzne dla kontrolki, takie jak kliknięcie przycisku.
- PreRender – wprowadź ostateczne zmiany na stronie lub w elementach sterujących przed wydrukiem.
- Zapisz stan ukończenia – stan widoku jest zapisywany dla wszystkich kontrolek.
- oddać – strona generuje dane wyjściowe HTML wysyłane do przeglądarki.
- Rozładować – wykonywane jest czyszczenie i obiekty są zwalniane z pamięci.
Cykl życia aplikacji a cykl życia strony
Cykl życia aplikacji i cykl życia strony działają w różnych zakresach. Poniższa tabela wyjaśnia, czym się różnią:
| WYGLĄD | Cykl życia aplikacji | Cykl życia strony |
|---|---|---|
| Zakres | Cała aplikacja internetowa | Żądanie jednostronicowe |
| Początek | Przy pierwszym żądaniu (Application_Start) | Za każdym razem, gdy żądana jest strona |
| Kluczowe wydarzenia | Start_aplikacji, Początek_żądania, Koniec_aplikacji | Inicjalizacja, ładowanie, wstępne renderowanie, rozładowywanie |
| Częstotliwość | Raz na początek i koniec aplikacji | Raz na żądanie strony |
Krótko mówiąc, cykl życia aplikacji obejmuje całą aplikację od uruchomienia do zamknięcia, podczas gdy cykl życia strony uruchamia się za każdym razem, gdy użytkownik żąda strony.
Dlaczego zrozumienie cyklu życia ASP.NET jest ważne
Zrozumienie cyklu życia jest kluczowe, ponieważ ASP.NET uruchamia kod w określonych momentach, a umieszczenie logiki w niewłaściwym zdarzeniu powoduje trudne do wykrycia błędy. Dokładne zrozumienie sekwencji pomaga:
- Twórz lub konfiguruj kontrolki dynamiczne na wczesnym etapie, w PreInit lub Init.
- Ustaw domyślne wartości kontrolne w zdarzeniu Load, aby były renderowane prawidłowo.
- Zastosuj ostateczne zmiany wyświetlania w PreRenderze po powiązaniu wszystkich danych.
- Rozróżniaj żądania pierwszego ładowania od żądań postback, aby uniknąć dwukrotnego przetwarzania danych.
- Zwolnij zasoby i wyczyść miejsce w Unload, aby zapobiec wyciekom pamięci.
Poznanie tych zdarzeń sprawia, że zarządzanie stanem, walidacja i debugowanie stają się o wiele bardziej przewidywalne.


