Životní cyklus ASP.NET stránky
20. prosince 2006
|
Radek Kropík
|
Ž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.