Asp.net Page LifeCycle (sayfa yaşam döngüsü)

Asp.net te sunucu ve istemci arasında sayfa bazında birçok alışveriş gerçekleşmektedir. İstemci bir istekte bulunur ve sunucu, istemcinin istediği page nesnesini istemciye sağlar. Bu page nesneside istemciye sunulurken, bir yaşam döngüsünden geçmektedir. İstemcinin her isteğinde bu yaşam döngüsü tekrarlanır ve page nesnesi üzerindeki tüm kontroller yeniden oluşturulur. 

Belirttiğimiz Asp.net Page Life Cycle ( sayfa yaşam dögüsü) aşağıdaki gibidir.

1- Page Setup

  • PreInıt
  • Init
  • InitComplete
  • PreLoad
  • Load
  • LoadComplete

2- Page Finalization

  • PreRender
  • PreRenderComplete
  • SaveStateComplete
  • UnLoad

Pre İnit

Sayfanın ilk kullanıma hazırlanmasından hemen önceki anı gösterir. Theme ve Masterpage ayarlarını bu evrede yapabilirsiniz. Dinamik olarak kontroller oluşturabilirsiniz. IsCallback, IsCrossPagePostback ve IsPostBack olaylarının ayarları burada yönetilir. Bütün kontroller bu aşamada yaratılmış ve default değerlerine set edilmiştir.

İnit

Sayfanın ilk kullanım için hazırlanan anını gösterir. Mastepage ve theme artık değiştirilemez . Preİnit aşamasında id leri olmayan kontrollere uniqe id atanır. Bu evrede viewstate henüz yüklenmemiştir.

İnitComplete

Sayfanın ilk kullanım için hazırlanmasının tamamlandığını gösterir. İnit evresi tamamlanmış ve tüm kontroller yüklenmiştir.  Henüz viewstate değerleri yüklenmemiştir.

PreLoad

Sayfa, kendi ve tüm kontrolleri yüklendikten sonra  Postback Datalarını işler

  • Loads ViewState : Viewstate değerleri yüklenir. Page ViewState ASP.NET tarafından yönetilir, sayfa üzerindeki bilgilerin Server’a gidip gelmesinin devamlılığını sağlar. View State bilgileri, Control Text ya da değer gibi bilgileri içeren, isim ya da değer String çifti olarak saklanır. View State, bir istekten diğerine geçerken girdileri(İnput) Value özelliğinden tutar
  • Loads Postback data : Postback verisi yüklenir. Postback verisi, sayfa kontrollerini tutar.

Note: Sayfa oluşturulurken ki aşamalarda, Server’a gönderilen  form dataları, gerekli kontrolleri için işlenir. Böylece sayfa parçacıkları, doğru PostBack Data ile doğru State’i güncellemek ve sayfalar arasında her bir kontrolü bulabilmek için parselenir. Asp.Net, doğru kontrolleri , NameValueCollectionde yer alan Kontrollerin unique ID leri olan isim ya da değer(Value) çiftleri eşleştirilerek günceller. Bu, Asp.Net de belirlenmemiş her bir sayfada, her bir kontrol için unique ID, zorunlu kılmasına neden olur.

Load

Bu kısımdaki önemli/not alınması gereken/püf nokta kısım şöyle, PostBack  yapılmadan önce sayfanın restore edilmiş olmasıdır. Kod içerisinde tipik olarak PostBack için çek edilir ve uygun kontrol özelikleri set edilir. Bu metod daha çok tipik olarak kodlamada kullanılır, tüm değerlerin yenilendiği, sayfanın yaşam döngüsü içinde ilk kullanıldığı yerdir. O zamandan beri de kullanılmaktadır. Birçok kodda, baştaki haline getirilmesinin gerekli olmadığı durumlarda bu değer çek edilir. Siz buna Validate olarak çağırmak/isimlendirmek isteyebilirsiniz ve metodun içinde de IsValid olarak kullanabilirsiniz. Böylece bu metodal birlikte dinamic bir kod oluşturmuş olabilirsiniz.

LoadComplete

Load evresinin bittiğini gösterir ve bu aşamadan sonra sayfa render aşamasına geçer.

Pre Render

Sayfa  ve kontroller için bir çıktı üretilmeden ve Viewstate kaydedilmeden önce yapılacak değişiklikler bu aşamada yapılır.Bu aşamadan sonra ViewState te değişiklik yapılamaz.

Pre Render Complete

Pre-render aşamasında sayfanın bütün kontrollerinde tekrarlı olarak çağırıldığı için, geliştiricinin Pre Render aşamasının tamamlandığını bilmesinin imkanı yoktur. Bunun için sadece sayfaya özel bu event çağırılır

Save State Complete

Render olmadan önce kontrollerin ve sayfanın o anki durumu sunucuya yapılacak bir sonraki istekte hatırlanabilmesi için Viewstate nesnesine kayıt edilir.

Render Aşaması : Web sayfa ekranında browser’larda sağ tuş yapın ve sayfa kaynağını inceleyin, kodda  hiçbir Aspx SERVER kontrolü bulamazsınız. Çünkü tüm Aspx kontrolleri kendi HTML simgelerine dönüştürür. Browser istemci tarafta yer alan Scriptleri ve HTML leri görüntüleme kabiliyetindedir. Bu metot, istemci tarafındaki HTML, DHTML ve Browser da gerekli olan ekran kontrol scriptlerinin oluşmasını sağlar.

UnLoad

Render aşamasından sonra önce kontrollerin unload eventi daha sonra da sayfanın unload eventi tetiklenerek son  temizlik işlemlerinin yapılır. Bu metod açık kalmış dosya ve database bağlantıları kapatmak gibi işlemler için kullanılabilir. 

 

ASP.NET PAGE LİFE CYCLE

 

Referanslar : http://www.codeproject.com/Articles/667308/ASP-NET-Page-Life-Cycle-Events

Yorumlar