20.12.2006 | Radek | | Programujeme | Žádné komentáře | 

Životní cyklus ASP.NET stránky

Životní cyklus každé ASP.NET stránky začíná vždy, když odešlete serveru požadavek na její zobrazení. Nejdříve server požadovanou stránku nahraje, zpracuje a nakonec pošle ve formě HTML na koncové zařízení klienta. Pokud jste někdy programovali v ASP, jistě víte, že se kód stránky vždy prováděl od prvního řádku do posledního. U ASP.NET aplikací je ale všechno jinak, jedná se zde totiž o plnohodnotné objektové programování. Na to musíte při vývoji ASP.NET aplikací myslet a začít využívat OOP. Tento přístup vám vývoj velice usnadní a také zpřehlední samotné programování.

Nyní se pojďme podívat na to, jakými fázemi zpracování taková ASP.NET stránka prochází.

Init – Inicializace

Při požadavku na stránku ASP.NET aplikace vždy na začátku dojde k její inicializaci. Je vyvolána událost Init a zpracována metoda OnInit(). Tím dojde k inicializaci objektů uvnitř stránky a také nastavení pro zpracování požadavku.

LoadViewState – Nahrání dat ve ViewState

Na rozdíl od klasické ASP stránky, ASP.NET stránka umí uchovávat stavové informace všech prvků v ní obsažených a to právě ve ViewState. Tyto informace se nahrávají právě v metodě LoadViewState().

LoadPostData – Zpracování vstupních dat

Pokud odešlete formulář, dochází k jeho zpracování a popřípadě jeho aktualizaci právě v metodě LoadPostData(). Proč popřípadě? Protože aktualizovat vlastnosti je možné pouze u těch prvků, které podporují rozhraní IPostBackDataHandler.

Load – Načtení a zpracování stránky

V metodě OnLoad() události Load jsou zpracovány všechny požadavky. Všechny objekty na stránce jsou inicializovány, formulářové prvky odpovídají datům předaným klientem. Právě v tomto okamžiku můžete manipulovat s jednotlivými prvky a nastavovat jejich vlastnosti.

RaisePostDataChanged – Došlo ke změně dat

Pokud dojde na stránce k nějaké změně, třeba k vyplnění TextBoxu nebo zaškrtnutí CheckBoxu, dojde ke zpracování metody RaisePostDataChangedEvent().

RaisePostBackEvents – Vyvolání události

Pokud máme v metodě OnInit() zaregistrovány příslušné události, dojde podle chování klienta k vyvolání události RaisePostBackEvent.

PreRender – Předrenderování stránky

Zde máte poslední možnost změnit vlastnosti prvků stránky a uchovat jejich stav ve vlastnosti ViewState. Událost je vyvolána pouze u těch prvků, které budou na stránce zobrazeny.

SaveViewState – Uložení ViewState (stavu stránky a prvků)

K uložení stavu prvků na stránce dojde při zpracování metody SaveViewState(). Jestliže jste si někdy zobrazili zdrojový kód své ASP.NET stránky, viděli jste v tomto kódu prvek Input Hidden s názvem __VIEWSTATE. Zde je právě ono ViewState uložené. Pokud nechcete, aby se ViewState ukládalo, nastavte vlastnost EnableViewState na hodnotu False.

Render – Vygenerování stránky

A zde již dochází k vygenerování výstupu – ať HTML nebo např. XML, který má být posléze poslán klientovi. Vykreslení všech prvků na stránce zajišťuje metoda Render().

Dispose – Odstranění objektů

V této fázi dochází k odstraňování objektů, které se při zpracování stránky použily.

UnLoad – Odstranění stránky ze zpracování

A na konec je vyvolána událost UnLoad a tato odstraní všechny prvky stránky ze zpracování. Po ukončení zpracování této metody je již stránka odeslána klientovi a zobrazena v prohlížeči.

A to je vlastně celý životní cyklus ASP.NET stránky. Pokud chcete na vlastní oči vidět, jak takové zpracování stránky probíhá, nastavte v hlavičce stránky v direktivě @Page vlastnost Trace na hodnotu True a pod vykreslenou stránkou uvidíte tabulku s informacemi, jak byla postupně stránka zpracovávána. Ještě je nutno dodat, že většina metod určených ke zpracování stránky je možno předefinovat a upravit dle vlastních požadavků. Ale to už je na další článek.





Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *


Novinky a oznámení

15.10.2016 - Do menu byla přidána nová sekce Stream, kde naleznete jak veškěré informace ohledně Fantomasmag TV, což jsou online streamy na Twitch.tv, tak i přímo online stream a chat.

Partnerské weby

Statistika

Naši fanoušci na Facebooku

Další...