ASP.NET Application & PAGE livssyklus
โก Smart oppsummering
ASP.NET Application and Page Life Cycle beskriver de ordnede stadiene en forespรธrsel gรฅr gjennom, fra oppstart av applikasjonen og opprettelse av objekter til initialisering, lasting, gjengivelse og utlasting av siden.ping utviklere plasserer kode pรฅ riktig sted.

Hva er ASP.Net Lifecycle?
Nรฅr en ASP.Net-applikasjon lanseres, utfรธres en rekke trinn. Disse trinnene utgjรธr applikasjonens livssyklus.
La oss se pรฅ de ulike stadiene i en typisk livssyklus for en ASP.Net-webapplikasjon.
ASP.Net livssyklus
1) Sรธknadsstart โ Livssyklusen til en ASP.NET Applikasjonen starter nรฅr en bruker gjรธr en forespรธrsel. Denne forespรธrselen gรฅr til webserveren for ASP.Net-applikasjonen. Dette skjer vanligvis nรฅr den fรธrste brukeren gรฅr til hjemmesiden for applikasjonen for fรธrste gang. I lรธpet av denne tiden finnes det en metode kalt Application_Start som kjรธres av webserveren. Vanligvis settes alle globale variabler til standardverdiene i denne metoden.
2) Objektskaping โ Neste trinn er at webserveren oppretter HttpContext, HttpRequest og HttpResponse. HttpContext er bare beholderen for HttpRequest- og HttpResponse-objektene. HttpRequest-objektet inneholder informasjon om den gjeldende forespรธrselen, inkludert informasjonskapsler og nettleserinformasjon. HttpResponse-objektet inneholder svaret som sendes til klienten.
3) HttpApplication opprettelse โ Dette objektet opprettes av webserveren. Det er dette objektet som brukes til รฅ behandle hver pรฅfรธlgende forespรธrsel som sendes til applikasjonen. La oss for eksempel anta at vi har to webapplikasjoner: den ene er en butikkping cart-applikasjonen, og den andre er en nyhetsnettside. For hver applikasjon ville vi ha opprettet to HttpApplication-objekter. Eventuelle ytterligere forespรธrsler til hvert nettsted ville bli behandlet av hver HttpApplication.
4) Kast โ Denne hendelsen kalles opp fรธr applikasjonsforekomsten blir รธdelagt. I lรธpet av denne tiden kan man bruke denne metoden til manuelt รฅ frigjรธre eventuelle uadministrerte ressurser.
5) Sรธknad slutt โ Dette er den siste delen av sรธknaden. I denne delen blir applikasjonen endelig lastet ut fra minnet.
Hva er ASP.Net Page Lifecycle?
Nรฅr en ASP.Net-side kalles, gรฅr den gjennom en bestemt livssyklus. Dette gjรธres fรธr svaret sendes til brukeren. Det er en rekke trinn som fรธlges for behandlingen av en ASP.Net-side.
La oss se pรฅ de ulike stadiene i livssyklusen til en ASP.Net-nettside.
ASP.Net Side livssyklus
- Sideforespรธrsel โ Dette er nรฅr siden fรธrst blir forespurt fra serveren. Nรฅr siden blir forespurt, sjekker serveren om den blir forespurt for fรธrste gang. I sรฅ fall mรฅ den kompilere siden, analysere svaret og sende det til brukeren. Hvis det ikke er fรธrste gang siden blir forespurt, sjekkes hurtigbufferen for รฅ se om sideutdataene finnes. I sรฅ fall sendes svaret til brukeren.
- Sidestart โ I lรธpet av denne tiden opprettes to objekter, kjent som Request- og Response-objekter. Request-objektet brukes til รฅ lagre all informasjonen som ble sendt da siden ble forespurt. Response-objektet brukes til รฅ lagre informasjonen som sendes tilbake til brukeren.
- Sideinitialisering โ I lรธpet av denne tiden initialiseres alle kontrollene pรฅ en nettside. Sรฅ hvis du har en etikett, tekstboks eller andre kontroller pรฅ nettskjemaet, initialiseres de alle.
- Sideinnlasting โ Dette er nรฅr siden faktisk er lastet med alle standardverdiene. Sรฅ hvis en tekstboks skal ha en standardverdi, lastes denne verdien inn under sidens lastetid.
- Validering โ Noen ganger kan det vรฆre noen valideringssett pรฅ skjemaet. For eksempel kan det vรฆre en validering som sier at en listeboks skal ha et visst sett med verdier. Hvis betingelsen er usann, bรธr det vรฆre en feil under innlasting av siden.
- Hรฅndtering av postback-hendelser โ Denne hendelsen utlรธses hvis den samme siden lastes inn pรฅ nytt. Dette skjer som svar pรฅ en tidligere hendelse. Noen ganger kan det oppstรฅ en situasjon der en bruker klikker pรฅ en send-knapp pรฅ siden. I dette tilfellet vises den samme siden pรฅ nytt, og Postback-hendelsesbehandleren kalles.
- Sidegjengivelse โ Dette skjer like fรธr all svarinformasjon sendes til brukeren. All informasjon pรฅ skjemaet lagres, og resultatet sendes til brukeren som en komplett nettside.
- Lesse โ Nรฅr sideutgangen er sendt til brukeren, er det ikke nรธdvendig รฅ beholde ASP.net nettskjema gjenstander i minnet. Sรฅ losseprosessen innebรฆrer รฅ fjerne alle uรธnskede objekter fra minnet.
ASP.NET-sidens livssyklushendelser
Utover de overordnede trinnene ovenfor, genererer ASP.NET en spesifikk sekvens av sidehendelser som utviklere kan hรฅndtere i koden. ร kjenne rekkefรธlgen hjelper deg med รฅ plassere logikken der den fungerer riktig:
- Forhรฅndsinnstilling โ angi hovedsider og temaer, og opprett dynamiske kontroller.
- I det โ hver kontroll initialiseres; bruk den til รฅ lese eller angi kontrollegenskaper.
- InitComplete โ heves etter at all initialisering er fullfรธrt.
- Forhรฅndslasting โ skjer fรธr siden laster inn visningsstatus og postback-data.
- Laste โ siden og kontrollene lastes inn; mesteparten av sidelogikken gรฅr hit.
- Kontrollhendelser โ kontrollspesifikke hendelser som for eksempel et knappeklikk hรฅndteres.
- Forhรฅndsgjengivelse โ gjรธr de siste endringene pรฅ siden eller kontrollene fรธr utskrift.
- LagreStatusFullfรธrt โ visningsstatus lagres for alle kontroller.
- gjengi โ siden genererer HTML-utdataene som sendes til nettleseren.
- Lesse โ opprydding utfรธres og objekter frigjรธres fra minnet.
Applikasjonslivssyklus vs. sidelivssyklus
Applikasjonslivssyklusen og sidelivssyklusen opererer med forskjellige omfang. Tabellen nedenfor tydeliggjรธr hvordan de skiller seg:
| Aspekt | Applikasjonssyklus | Sidelivssyklus |
|---|---|---|
| Omfang | Hele webapplikasjonen | En forespรธrsel pรฅ รฉn side |
| Begynner | Pรฅ den fรธrste forespรธrselen (Application_Start) | Hver gang en side blir forespurt |
| Viktige hendelser | Sรธknadsstart, BegynnForespรธrsel, Sรธknadsslutt | Init, Last inn, Forhรฅndsgjengivelse, Fjern |
| Frekvens | รn gang per sรธknadsstart og -slutt | Forespรธrsel รฉn gang per side |
Kort sagt, applikasjonens livssyklus omfatter hele appen fra oppstart til avslutning, mens sidelivssyklusen kjรธrer hver gang en bruker ber om en side.
Hvorfor det er viktig รฅ forstรฅ ASP.NETs livssyklus
Det er viktig รฅ forstรฅ livssyklusen fordi ASP.NET kjรธrer koden din pรฅ bestemte tidspunkt, og รฅ plassere logikk i feil hendelse forรฅrsaker feil som er vanskelige รฅ finne. En klar forstรฅelse av sekvensen hjelper deg med รฅ:
- Opprett eller konfigurer dynamiske kontroller tidlig, i PreInit eller Init.
- Angi standard kontrollverdier i Load-hendelsen slik at de gjengis riktig.
- Bruk de endelige visningsendringene i PreRender, etter at alle data er bundet.
- Skill mellom forespรธrsler om fรธrste innlasting og tilbakesendinger for รฅ unngรฅ รฅ behandle data to ganger.
- Frigjรธr ressurser og rydd opp i Unload for รฅ forhindre minnelekkasjer.
ร mestre disse hendelsene gjรธr tilstandsstyring, validering og feilsรธking langt mer forutsigbar.


