Siklus hidup ASP.NET menentukan cara:
ASP.NET memproses halaman untuk menghasilkan keluaran dinamis
Aplikasi dan halaman-halamannya dibuat dan diproses
ASP.NET mengkompilasi halaman secara dinamis
Siklus hidup ASP.NET dapat dibagi menjadi dua kelompok:
Siklus hidup aplikasi
Siklus hidup halaman
Siklus hidup aplikasi memiliki tahapan sebagai berikut:
Pengguna meminta akses ke sumber daya aplikasi, yaitu halaman. Browser mengirimkan permintaan ini ke server web.
Alur terpadu menerima permintaan pertama, dan kejadian berikut terjadi:
Objek kelas ApplicationManager dibuat.
Objek kelas HostingEnvironment dibuat untuk menyediakan sumber informasi.
Buat objek respons. Objek aplikasi seperti HttpContext, HttpRequest dan HttpResponse dibuat dan diinisialisasi.
Sebuah instance dari objek HttpApplication dibuat dan ditetapkan ke permintaan.
Permintaan ditangani oleh kelas HttpApplication. Peristiwa berbeda memicu permintaan pemrosesan tersebut.
Ketika suatu halaman diminta, halaman tersebut dimuat ke dalam memori server, kemudian diproses dan disajikan ke browser. Kemudian keluarkan dari memori. Pada setiap langkah tersebut, metode dan kejadian telah tersedia dan dapat disesuaikan dengan kebutuhan aplikasi. Dengan kata lain, Anda dapat menulis kode Anda sendiri untuk menggantikan kode default.
Kelas halaman membuat pohon hierarki dari semua kontrol di halaman. Semua komponen pada halaman, kecuali arahan, adalah bagian dari pohon kontrol. Anda dapat melihat pohon kontrol dengan menambahkan trace = "true" ke direktif halaman. Kami akan mengganti arahan halaman dan melacaknya di bawah 'arahan' dan 'penanganan kejadian'.
Tahapan siklus hidup halaman adalah:
inisialisasi
Instansiasi kontrol halaman
Pemulihan dan pemeliharaan negara
Eksekusi kode penanganan acara
Tampilan halaman
Memahami siklus halaman membantu kita menulis kode sehingga hal-hal spesifik dapat terjadi pada tahap mana pun dalam siklus hidup halaman. Ini juga membantu Anda menulis kontrol khusus dan menginisialisasinya pada waktu yang tepat, mengisi propertinya dengan data dari status tampilan, dan menjalankan kode untuk perilaku kontrol.
Berikut adalah tahapan berbeda dari halaman ASP.NET:
Permintaan Halaman - Ketika ASP.NET mendapat permintaan halaman, ASP.NET memutuskan apakah akan mengurai dan mengkompilasi halaman atau membuat versi halaman yang disimpan dalam cache akan meresponsnya.
Siklus hidup awal halaman - Pada fase ini, objek permintaan dan respons disiapkan. Jika ini adalah permintaan lama atau postback, properti IsPostBack halaman disetel ke benar. Properti halaman ULCulture juga disetel.
Inisialisasi halaman - Selama fase ini, kontrol pada halaman diberi ID unik dan tema diterapkan dengan mengatur properti UniqueID. Untuk permintaan baru, data postback dimuat dan properti kontrol dikembalikan ke nilai status tampilannya.
Pemuatan Halaman - Dalam fase ini, properti kontrol diatur, menggunakan status tampilan dan nilai status kontrol.
Validasi - Metode validasi kontrol validasi dipanggil dan dijalankan dengan sukses, dan properti IsValid halaman disetel ke true.
Penanganan event postback - Jika permintaannya adalah postback (permintaan lama), event handler yang relevan akan dipanggil.
Tampilan Halaman - Pada tahap ini, status tampilan halaman dan semua kontrol disimpan. Halaman tersebut memanggil metode tampilan untuk setiap kontrol, dan output yang diberikan ditulis ke kelas OutputStream di properti respons halaman.
Dibongkar - Halaman yang ditampilkan disajikan ke klien dan atribut halaman, seperti respons dan permintaan, dibongkar dan semuanya dihapus.
Pada setiap tahap siklus hidup halaman, halaman tersebut diaktifkan selama beberapa waktu dan akan dikodekan. Pengendali peristiwa pada dasarnya adalah fungsi atau subrutin yang terikat pada suatu peristiwa, menggunakan properti atau penangan deklaratif seperti OnClick.
Berikut ini adalah peristiwa siklus hidup halaman:
PreInit - PreInit adalah kejadian pertama dalam siklus hidup halaman. Ia memeriksa properti IsPostBack dan menentukan apakah halaman tersebut diposting kembali. Ini menetapkan tema dan halaman beranda, membuat kontrol dinamis, dan mendapatkan serta menetapkan nilai properti profil nilai. Event ini dapat ditangani dengan mengganti metode OnPreInit atau membuat handler Page_PreInit.
Init - Acara Init menginisialisasi properti kontrol dan membangun pohon kontrol. Event ini dapat ditangani dengan membebani metode OnInit secara berlebihan atau membuat handler Page_Init.
InitComplete - Acara InitComplete memungkinkan pelacakan status tampilan. Semua kontrol mengaktifkan pelacakan dalam status tampilan.
LoadViewState - Peristiwa LoadViewState memungkinkan memuat informasi status tampilan ke dalam kontrol.
LoadPostData - Selama fase ini, konten semua kolom input yang ditentukan oleh tag diproses.
PreLoad - PreLoad terjadi sebelum data postback dimuat di kontrol. Peristiwa ini dapat ditangani dengan membebani metode OnPreLoad secara berlebihan atau membuat pengendali Pre_Load.
Load - Event Load dimunculkan pertama kali oleh halaman dan kemudian secara rekursif ke semua kontrol anak. Kontrol di pohon kontrol dibuat. Peristiwa ini dapat ditangani dengan membebani metode OnLoad secara berlebihan atau membuat pengendali Page_Load.
LoadComplete - Proses pemuatan selesai, pengendali kejadian kontrol dijalankan, dan validasi halaman terjadi. Peristiwa ini dapat ditangani dengan membebani metode OnLoad secara berlebihan atau membuat pengendali Page_LoadComplete.
PreRender - Acara PreRender terjadi tepat sebelum output ditampilkan. Dengan menangani peristiwa ini, halaman dan kontrol dapat melakukan pembaruan apa pun sebelum keluarannya ditampilkan.
PreRenderComplete - Saat peristiwa PreRender dimunculkan untuk semua kontrol anak dalam satu lingkaran, peristiwa ini memastikan selesainya fase pra-tampilan.
SaveStateComplete - Status kontrol halaman disimpan. Personalisasi, status kontrol, dan informasi status tampilan disimpan.
Bongkar - Fase Bongkar adalah fase terakhir dari siklus hidup halaman. Ini memunculkan acara UnLoad untuk semua kontrol dalam satu lingkaran, dan akhirnya untuk halaman itu sendiri. Akhirnya menyelesaikan pembersihan dan melepaskan semua sumber daya dan referensi, seperti koneksi database. Event ini dapat ditangani dengan menyesuaikan metode OnLoad atau membuat handler Page_UnLoad.