Wyklad TI 10


Technologie internetowe
Wykład 10
Cykl życia strony i monitoring serwisu
Cykl życia - Żądanie strony
Decyzja o wysłaniu kodu HTML z bufora
Decyzja wczytaniu p-kodu strony z
bufora lub jej kompilacji, gdy:
Zmienił się kod strony
Zmieniła się zawartość pliku web.config
Zmieniła się pliki zasobów
Utworzenie obiektu Page
1
Cykl życia - Start
Inicjalizacja obiektu Request
Inicjalizacja obiektu Response
Określenie, czy strona jest wczytywana
po raz pierwszy, czy w wyniku odesłania
formularza
Ustawienie właściwości IsPostBack
Ustawienie właściwości UICulture
Cykl życia - Inicjalizacja
Inicjalizacja wszystkich kontrolek strony
Ustawienie i właściwości UniqueID
Zastosowanie tematu Theme
Zastosowanie wzorca strony
MasterPage
Kontrolki nie odtworzyły swoich
właściwości z odesłanego formularza
2
Cykl życia - Aadowanie
Żądanie przetworzone
Właściwości kontrolek odtworzone z
odesłanego formularza
Cykl życia - Obsługa zdarzeń formularza
Wywołanie metody Validate wszystkich
kontrolek walidatorów
Ustawienia właściwości IsValid
walidatorów i całej strony
Wywołanie metod obsługi zdarzeń
kontrolek
3
Cykl życia - Rendering
Zapisanie ViewState
Wywołanie metody Render każdej
kontrolki generującej jej reprezentację
HTML
Wpisanie kodu HTML do strumienia
wyjściowego Respone.OutputStream
Cykl życia - Wyładowanie
Strona wysłana do przeglądarki
Usunięcie obiektu Request
Usunięcie obiektu Response
Usunięcie obiektu Page
4
Zmiana kultury
override void InitializeCulture()
{
string symbol= pl-PL ;
UICulture=symbol;
Culture= pl-PL ;
Thread.CurrentThread.CurrentCulture=
CultureInfo.CreateSpecificCulture(symbol);
Thread.CurrentThread.CurrentUICulture=
CultureInfo(symbol);
}
Zdarzenia strony
<%@ Page Language="C#" AutoEventWireup="True" %>

nazwa


Strona







5
Zdarzenie PreInit
Po odbiorze żądania i starcie
Przed inicjalizacją strony
Możliwość sprawdzenia właściwości
IsPostBack
Dynamiczne tworzenie kontrolek
Dynamiczna zmiana strony wzorcowej
MasterPage
Dynamiczna zmiana tematu strony
Dynamiczna zmiana tematu
<%@ Page Language="C#" %>



Strona






6
Dynamiczna zmiana tematu przy
pomocy kontrolki
<%@ Page Language="C#" %>



Strona




Wiosna
Lato
Jesień
Zima




Odtworzenie właściwości kontrolek z
odesłanego formularza
<%@ Page Language="C#" %>



Strona



Hello




7
Dynamiczna zmiana tematu przy
pomocy kontrolki

:


protected void Page_PreInit(object sender, EventArgs e)
{
if (Request.Form["lstTemat"] != null)
Theme=Request.Form["lstTemat"];
}
protected void Page_PreInit(object sender, EventArgs e)
{
if (Request.Form[lstTemat.UniqueID] != null)
Theme=Request.Form[lstTemat.UniqueID];
}
Dynamiczna zmiana strony
wzorcowej przy pomocy kontrolki
<%@ Page Language="C#" %>



Strona




Mała
Średnia
Duża




8
Zdarzenie Init
Po inicjalizacji strony
Najpierw zdarzenia Init wszystkich
kontrolek
Pózniej zdarzenie Init całej strony
Używane do inicjalizacji właściwości
kontrolek
Zdarzenie Init  właściwości kontrolek
<%@ Page Language="C#" %>



Strona











9
Zdarzenie InitComplete
Zdarzenia Init wszystkich kontrolek i
strony zrealizowane
Rozpoczęcie rejestracji zmiennych
zapisanych w ViewState
Zdarzenie PreLoad
Właściwości kontrolek odtworzone
Można odczytać aktualne właściwości
10
Zdarzenie PreLoad - ViewState
protected void Page_PreLoad(object sender, EventArgs e)
{
int licznik = 0;
if (ViewState["licznik"] != null)
licznik = (int)ViewState["licznik"];
licznik++;
lblLicznik.Text = licznik.ToString();
ViewState["licznik"] = licznik;
}
Zdarzenie PreLoad - właściwości
<%@ Page Language="C#" %>



Strona




Mała
Średnia
Duża




11
Zdarzenie Load
Po załadowaniu strony
Najpierw realizowane jest zdarzenie
Load strony
Pózniej realizowane są zdarzenia Load
kontrolek
Używane do ustawienia właściwości
kontrolek i otwierania połączeń z bazami
danych
Zdarzenie Load
<%@ Page Language="C#" %>



Strona







12
Zdarzenie LoadComplete
Po realizacji zdarzeń Load strony i
wszystkich kontolek
Wykorzystywane, gdy konieczna jest
pewność wykonania wszystkich zdarzeń
Load
Zdarzenie PreRender
Ostatnie zdarzenie przed renderingiem
Najpierw realizowane jest zdarzenie
PreRender strony
Pózniej realizowane są zdarzenia
PreRender wszystkich kontrolek
Ostatnie zmiany właściwości kontrolek
przed rendering iem
Można sprawdzić właściwość IsValid
13
Zdarzenie PreRender
<%@ Page Language="C#" AutoEventWireup="True" %>



Strona







ErrorMessage="Problem" MaximumValue="100" MinimumValue="0" Type="Integer"
EnableViewState="False">




Zdarzenie PreRenderComplete
Po realizacji zdarzeń PreRender strony i
wszystkich kontolek
Wykorzystywane, gdy konieczna jest
pewność wykonania wszystkich zdarzeń
PreRender
14
Zdarzenie SaveStateComplete
Właściwości i zmienne ViewState
zapisane
Zmiany właściwości kontrolek wpłyną na
rendering, ale nie będą utrwalone
Zdarzenie SaveStateComplete
<%@ Page Language="C#" AutoEventWireup="True" %>



Strona








15
Zdarzenie Unload
Po renderingu
Najpierw zdarzenia Unload kontrolek
Pózniej zdarzenie Unload strony
Nie można wprowadzać zmian do treści
strony
Można zamknąć połączenia z bazą
danych
Zdarzenie Unload
<%@ Page Language="C#" AutoEventWireup="True" %>



Strona








16
Monitorowanie serwisu
ASP.NET
Aktywacja śledzenia strony
Strona.aspx
<%@ Page Language="C#" Trace="True" %>
web.config





17
Trace  Przykładowa aplikacja
<%@ Page Language="C#" %>



Strona







Trace  Szczegóły żądania
18
Trace  Informacje o śledzeniu
Trace - Drzewo formantów
19
Trace - Zmienne stanu
Trace - Nagłówek HTTP
Klient
Serwer
20
Trace  Zmienne serwerowe
Trace  Dane formularza
21
Trace - konfiguracja
Wyłączenie
wyświetlania
Włączenie
na stronie
śledzenia
requestLimit="15" localOnly="true" />
Pamiętaj 15
Pamiętaj
żądań
ostatnie
żądania
Wyświetlaj
tylko lokalnie
Trace.axd
22
Trace  Własne informacje
protected void btnTest_Click(object sender, EventArgs e)
{
Trace.Write("Testowa informacja");
Trace.Write("Informacje", "Zdarzenie kliknięcia");
Trace.Warn("Dane", "Brak danych");
}
Debug  Wyświetlanie informacji
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Diagnostics" %>



Strona



0




23
Debug  Zatrzymanie aplikacji
protected void btnTest_Click(object sender, EventArgs e)
{
Debug.Assert(txtDana.Text != "0", "Pole równe 0", "Dodatkowa informacja");
}
24


Wyszukiwarka

Podobne podstrony:
Wyklad TI 1
Wyklad TI 9
Wyklad TI
Wyklad TI 6
Wyklad TI
PREZENTACJA wyklad TI 2
Wyklad TI 8
PREZENTACJA wyklad TI 4
Wyklad TI 4
Wyklad TI 3
PREZENTACJA wyklad TI 1
Wyklad TI 7
Wyklad TI
Wyklad TI 2
Wyklad TI 5
Wykład TI 05 12 11 2
TI Wykład 08
TI Wykład 03
wyklad Patryka wskaźniki TI 18 12 11

więcej podobnych podstron