Der ASP.NET-Lebenszyklus legt fest, wie:
ASP.NET verarbeitet Seiten, um dynamische Ausgaben zu generieren
Die Anwendung und ihre Seiten werden instanziiert und verarbeitet
ASP.NET kompiliert Seiten dynamisch
Der ASP.NET-Lebenszyklus kann in zwei Gruppen unterteilt werden:
Anwendungslebenszyklus
Seitenlebenszyklus
Der Anwendungslebenszyklus besteht aus folgenden Phasen:
Ein Benutzer fordert Zugriff auf die Ressource einer Anwendung an, bei der es sich um eine Seite handelt. Der Browser sendet diese Anfrage an den Webserver.
Eine einheitliche Pipeline empfängt die erste Anfrage und die folgenden Ereignisse treten ein:
Ein Objekt der ApplicationManager-Klasse wird erstellt.
Zur Bereitstellung der Informationsressource wird ein Objekt der HostingEnvironment-Klasse erstellt.
Erstellen Sie ein Antwortobjekt. Anwendungsobjekte wie HttpContext, HttpRequest und HttpResponse werden erstellt und initialisiert.
Eine Instanz des HttpApplication-Objekts wird erstellt und der Anforderung zugewiesen.
Anfragen werden von der HttpApplication-Klasse verarbeitet. Verschiedene Ereignisse lösen solche Verarbeitungsanfragen aus.
Wenn eine Seite angefordert wird, wird die Seite in den Serverspeicher geladen, dann verarbeitet und dem Browser bereitgestellt. Dann entladen Sie es aus dem Speicher. Bei jedem dieser Schritte stehen Methoden und Ereignisse zur Verfügung, die je nach Bedarf der Anwendung angepasst werden können. Mit anderen Worten: Sie können Ihren eigenen Code schreiben, um den Standardcode zu ersetzen.
Die Seitenklasse erstellt einen hierarchischen Baum aller Steuerelemente auf der Seite. Alle Komponenten auf der Seite, mit Ausnahme von Anweisungen, sind Teil des Kontrollbaums. Sie können den Kontrollbaum anzeigen, indem Sie „trace = „true““ zur Seitenanweisung hinzufügen. Wir überschreiben die Seitenanweisungen und verfolgen sie unter „Anweisungen“ und „Ereignisbehandlung“.
Die Phasen des Seitenlebenszyklus sind:
Initialisierung
Instanziierung der Seitensteuerung
Zustandswiederherstellung und -erhaltung
Ausführung von Event-Handling-Code
Seitenanzeige
Das Verständnis des Seitenzyklus hilft uns, Code so zu schreiben, dass in jeder Phase des Seitenlebenszyklus bestimmte Dinge passieren können. Es hilft Ihnen außerdem dabei, benutzerdefinierte Steuerelemente zu schreiben und sie zum richtigen Zeitpunkt zu initialisieren, ihre Eigenschaften mit Daten aus dem Ansichtsstatus zu füllen und Code für das Verhalten des Steuerelements auszuführen.
Im Folgenden sind die verschiedenen Phasen einer ASP.NET-Seite aufgeführt:
Seitenanforderung – Wenn ASP.NET eine Seitenanforderung erhält, entscheidet es, ob die Seite analysiert und kompiliert wird oder ob eine zwischengespeicherte Version der Seite entsprechend reagiert.
Beginn des Seitenlebenszyklus – In dieser Phase werden Anforderungs- und Antwortobjekte eingerichtet. Wenn es sich um eine alte Anfrage oder ein Postback handelt, wird die IsPostBack-Eigenschaft der Seite auf „Korrigieren“ gesetzt. Die Seiteneigenschaft ULCulture ist ebenfalls festgelegt.
Seiteninitialisierung – In dieser Phase werden den Steuerelementen auf der Seite eindeutige IDs zugewiesen und Themen werden durch Festlegen der UniqueID-Eigenschaft angewendet. Bei einer neuen Anfrage werden die Postback-Daten geladen und die Steuerelementeigenschaften werden auf ihre Ansichtsstatuswerte zurückgesetzt.
Seitenladen – In dieser Phase werden Steuereigenschaften mithilfe von Ansichtsstatus- und Steuerelementstatuswerten festgelegt.
Validierung – Die Validierungsmethode des Validierungssteuerelements wird aufgerufen und erfolgreich ausgeführt, und die IsValid-Eigenschaft der Seite wird auf true gesetzt.
Postback-Ereignisbehandlung – Wenn es sich bei der Anfrage um ein Postback (alte Anfrage) handelt, wird der entsprechende Ereignishandler aufgerufen.
Seitenanzeige – In dieser Phase werden der Ansichtsstatus der Seite und alle Steuerelemente gespeichert. Die Seite ruft die Anzeigemethode für jedes Steuerelement auf und die gerenderte Ausgabe wird in die OutputStream-Klasse in den Antworteigenschaften der Seite geschrieben.
Entladen – Die angezeigte Seite wird dem Client bereitgestellt und Seitenattribute, wie Antworten und Anfragen, werden entladen und alle gelöscht.
In jeder Phase des Lebenszyklus der Seite wird die Seite einige Zeit lang ausgelöst und codiert. Ein Event-Handler ist im Grunde eine Funktion oder Unterroutine, die mithilfe deklarativer Eigenschaften oder Handler wie OnClick an ein Ereignis gebunden ist.
Im Folgenden sind Seitenlebenszyklusereignisse aufgeführt:
PreInit – PreInit ist das erste Ereignis im Seitenlebenszyklus. Es überprüft die IsPostBack-Eigenschaft und bestimmt, ob die Seite zurückgesendet wird. Es legt Themen und Homepages fest, erstellt dynamische Steuerelemente und ruft Werteprofil-Eigenschaftswerte ab und legt diese fest. Dieses Ereignis kann durch Überschreiben der OnPreInit-Methode oder durch Erstellen eines Page_PreInit-Handlers behandelt werden.
Init – Das Init-Ereignis initialisiert Steuereigenschaften und erstellt den Steuerbaum. Dieses Ereignis kann durch Überladen der OnInit-Methode oder durch Erstellen eines Page_Init-Handlers behandelt werden.
InitComplete – Das InitComplete-Ereignis ermöglicht die Verfolgung des Ansichtsstatus. Alle Steuerelemente ermöglichen die Verfolgung im Ansichtszustand.
LoadViewState – Das LoadViewState-Ereignis ermöglicht das Laden von Ansichtsstatusinformationen in ein Steuerelement.
LoadPostData – In dieser Phase werden die Inhalte aller durch -Tags definierten Eingabefelder verarbeitet.
PreLoad – PreLoad erfolgt, bevor die Postback-Daten in das Steuerelement geladen werden. Dieses Ereignis kann durch Überladen der OnPreLoad-Methode oder durch Erstellen eines Pre_Load-Handlers behandelt werden.
Load – Das Load-Ereignis wird zuerst von der Seite und dann rekursiv für alle untergeordneten Steuerelemente ausgelöst. Die Steuerelemente im Steuerbaum werden erstellt. Dieses Ereignis kann durch Überladen der OnLoad-Methode oder durch Erstellen eines Page_Load-Handlers behandelt werden.
LoadComplete – Der Ladevorgang wird abgeschlossen, Steuerereignishandler werden ausgeführt und die Seitenvalidierung erfolgt. Dieses Ereignis kann durch Überladen der OnLoad-Methode oder durch Erstellen eines Page_LoadComplete-Handlers behandelt werden.
PreRender – Das PreRender-Ereignis tritt unmittelbar vor der Anzeige der Ausgabe ein. Durch die Behandlung dieses Ereignisses können Seiten und Steuerelemente Aktualisierungen durchführen, bevor die Ausgabe angezeigt wird.
PreRenderComplete – Wenn das PreRender-Ereignis für alle untergeordneten Steuerelemente in einer Schleife ausgelöst wird, stellt dieses Ereignis den Abschluss der Voranzeigephase sicher.
SaveStateComplete – Der Status der Seitensteuerung wird gespeichert. Informationen zur Personalisierung, zum Steuerungsstatus und zum Ansichtsstatus werden gespeichert.
UnLoad – Die UnLoad-Phase ist die letzte Phase des Seitenlebenszyklus. Es löst das UnLoad-Ereignis für alle Steuerelemente in einer Schleife und schließlich für die Seite selbst aus. Schließt schließlich die Bereinigung und Freigabe aller Ressourcen und Referenzen, wie z. B. Datenbankverbindungen, ab. Dieses Ereignis kann durch Anpassen der OnLoad-Methode oder Erstellen eines Page_UnLoad-Handlers behandelt werden.