Understanding ASP.NET Page Life Cycle
Asp.net မှာ နောက်ကွယ်မှာ အလုပ်လုပ်နေတဲ့ page event တွေ အများကြီး ရှိပါတယ်။ အဲဒီ event တွေကို နားလည်ထားရင် Asp.net ကို ရေးရတာ ပိုမို လွယ်ကူ လာပါလိမ့်မယ်။ page event တွေအကြောင်းကို မပြောခင် state လေးတွေနဲ့ အရင်ရှင်းပြပါ့မယ်။
States
Page request
user က page ကို request လုပ်တဲ့အချိန်မှာ အခု state ဖြစ်တာပါ။ တလက်စတည်း asp.net engine က page ကို compile လုပ်ဖို့လိုမလို ဆုံးဖြတ်ပါတယ်။ တကယ်လို့ cache အနေနဲ့အလုပ်လုပ်ထားရင် compile ပြန်လုပ်မလုပ်ပဲ cache version ကို response ပြန်ပေးမှာ ဖြစ်ပါတယ်။
Start
Start stage မှာ page ရဲ့ properties တွေဖြစ်တဲ့ Request, Response တွေကို နေရာချပါတယ်။ ယခုလက်ရှိ page က postback ဟုတ်သလား ဆိုတာကို စစ်ပြီးတော့ postback property ကိုလည်း Assign လုပ်ပါတယ်။
Initialization
ဒီအဆင့်မှာတော့ page မှာ ရှိတဲ့ control တွေကို Unique ID တွေ သတ်မှတ်ပါတယ်။ master page တွေ၊ Theme တွေ ရှိနေရင်လည်း ဒီအဆင့်မှာ သတ်မှတ်ပါတယ်။ တကယ်လို့ request က postback ဖြစ်နေခဲ့ရင် ဒီအဆင့်မှာ postback data တွေကို ဆွဲမတင် သေးပါဘူး။ ဆိုလိုတာက control တွေထဲကို ViewState data တွေ restore ပြန် မလုပ်သေးပါဘူး။
Load
ဒီအဆင့်ရောက်ရင်တော့ Control တွေထဲကို ViewState data တွေ ထည့်ပြီးပါပြီ။
Render
ဒီအဆင့်မှာတော့ ViewState တွေကို save ပြန်လုပ်ပါတယ်။ browser တွေက နားလည်တဲ့ html code တွေ အဖြစ် generate လုပ်ပါတယ်။
Page Events
အပေါ်က state တွေ ပြီးရင်တော့ page Event တွေကို ပြန်ကြည့်ရအောင်။
PreInit Event
start state မှာ လုပ်တဲ့အ လုပ်တွေ ပြီးသွားတဲ့အခါမှာ PreInit Event အလုပ်လုပ်ပါတယ်။ ဒီ Event ကို ဘယ်လို အခြေနေမျိုးမှာ အသုံးပြု သင့်သလဲ ဆိုတော့
- Postback property ကို စစ်ထုတ်ပြီးတော့ page က ပထမဆုံး အကြိမ် လား ၊ postback လားဆိုတာကို စစ်ဆေးရန်
- Dynamically Control တွေကို create or recreate လုပ်ရန်
- Masterpage ကို Dynamically အရ assign လုပ်ရန်
- Theme Property များကို Dynamically အရ assign လုပ်ရန်
- Profile ထဲက property တွေကို Read,Write လုပ်ရန်
Init Event
Control တွေကို တည်ဆောက်ပြီးသွားတာနဲ့ Init Event ကို အလုပ်လုပ်ပါတယ်။ ဒီ event ထဲမှာတော့ Control တွေရဲ့ property တွေကို assign လုပ်တဲ့ နေရာမှာ အသုံးပြုသင့်ပါတယ်။
InitComplete Event
Initiation state ပြီးတာနဲ့ InitComplete Event အလုပ်လုပ်ပါတယ်။ Init နဲ့ InitComplete ကြားထဲမှာ လုပ်တာ တစ်ခုပဲ ရှိပါတယ်။ ViewState ကို tracking လုပ်တာပါ။ ViewState on ထားသလား ၊ off လုပ်ထားသလား ဆိုတာကို track လုပ်ပါတယ်။ ဒီ Event ထဲမှာ ViewState ကို ပြောင်းလဲတဲ့ နေရာမှာ သုံးသင့်ပါတယ်။
PreLoad Event
ViewState ထဲက ဒေတာတွေကို page နဲ့ အခြား Control တွေကို ဆွဲတင်ပြီးတဲ့ အချိန်မှာ PreLoad Event ကို လုပ်ပါတယ်။
Load
ဒီ Event ထဲမှာ Database connection နဲ့ Control တွေရဲ့ property တွေကို သတ်မှတ်သင့်ပါတယ်။
Control Event
Page load event ပြီးသွားတာနဲ့ Control တခုချင်းစီရဲ့ ကိုယ်ပိုင် Event တွှေ အလုပ်လုပ်ပါပြီ။
PreRender Event
Page object နဲ့ တခြား control တွေကို render လုပ်ဖို့ အဆင်သင့်ဖြစ်ပြီးသွားရင် PreRender Event အလုပ်လုပ်ပါတယ်။ ဒီအဆင့်မှာ client ဘက်ကို Render အလုပ်ခင် contents တွေပြောင်းလဲဖို့အတွက် နောက်ဆုံး အဆင့်လည်းဖြစ်ပါတယ်။
PreRenderComplete Event
Data bound control တွေအတွက် DatasourceID property နဲ့ Databind method ကိုခေါ်ပြီးတဲ့အချိန်မှာ PreRenderComplete အလုပ် လုပ်ပါတယ်။
အဲဒီEvent တွေ ပြီးရင်တော့ SaveStateComplete, Render Event တွေ အဆင့်ဆင့် အလုပ်လုပ်ကြပါတယ်။
Facebook comments:




လေ့လာကြမယ်ဆိုတဲ့အတိုင်းပါပဲ လေ့လာနေရတာပေါ့ ဒါပေမဲ့ နားလည်နိုင်တဲ့အဆင့်ရောက်သေးဘူးဗျ
ဝင်ဝင်ပြီးတော့ဖတ်နေတာပါပဲ…ဆက်ရေးပါဦး
Nice One! Thanks Bro!