تحدد دورة حياة ASP.NET كيفية:
يقوم ASP.NET بمعالجة الصفحات لإنشاء مخرجات ديناميكية
يتم إنشاء مثيل للتطبيق وصفحاته ومعالجتها
يقوم ASP.NET بتجميع الصفحات ديناميكيًا
يمكن تقسيم دورة حياة ASP.NET إلى مجموعتين:
دورة حياة التطبيق
دورة حياة الصفحة
تتكون دورة حياة التطبيق من المراحل التالية:
يطلب المستخدم الوصول إلى مورد التطبيق، وهو صفحة. يرسل المتصفح هذا الطلب إلى خادم الويب.
يتلقى المسار الموحد الطلب الأول، وتحدث الأحداث التالية:
يتم إنشاء كائن من فئة ApplicationManager.
يتم إنشاء كائن من فئة HostingEnvironment لتوفير مصدر المعلومات.
إنشاء كائن استجابة. يتم إنشاء وتهيئة كائنات التطبيق مثل HttpContext وHttpRequest وHttpResponse.
يتم إنشاء مثيل لكائن HttpApplication وتعيينه للطلب.
تتم معالجة الطلبات من خلال فئة HttpApplication. تؤدي الأحداث المختلفة إلى تشغيل طلبات المعالجة هذه.
عند طلب صفحة، يتم تحميل الصفحة في ذاكرة الخادم، ثم تتم معالجتها وتقديمها إلى المتصفح. ثم قم بإفراغه من الذاكرة. في كل خطوة من هذه الخطوات، تتوفر الأساليب والأحداث ويمكن تكييفها حسب حاجة التطبيق. بمعنى آخر، يمكنك كتابة التعليمات البرمجية الخاصة بك لتحل محل التعليمات البرمجية الافتراضية.
تقوم فئة الصفحة بإنشاء شجرة هرمية لجميع عناصر التحكم الموجودة على الصفحة. تعتبر جميع المكونات الموجودة في الصفحة، باستثناء التوجيهات، جزءًا من شجرة التحكم. يمكنك رؤية شجرة التحكم عن طريق إضافة أثر = "صحيح" إلى توجيه الصفحة. سنقوم بتجاوز توجيهات الصفحة وتتبعها ضمن "التوجيهات" و"التعامل مع الأحداث".
مراحل دورة حياة الصفحة هي:
التهيئة
إنشاء مثيل للتحكم في الصفحة
استعادة الدولة والصيانة
تنفيذ كود التعامل مع الأحداث
عرض الصفحة
يساعدنا فهم دورة الصفحة في كتابة التعليمات البرمجية بحيث يمكن أن تحدث أشياء محددة في أي مرحلة من دورة حياة الصفحة. كما يساعدك أيضًا على كتابة عناصر التحكم المخصصة وتهيئتها في الوقت المناسب، وملء خصائصها بالبيانات من حالة العرض، وتشغيل التعليمات البرمجية لسلوك عنصر التحكم.
فيما يلي المراحل المختلفة لصفحة ASP.NET:
طلب الصفحة - عندما يتلقى ASP.NET طلب صفحة، فإنه يقرر ما إذا كان سيتم تحليل الصفحة وتجميعها أو الحصول على نسخة مخبأة من الصفحة تستجيب وفقًا لذلك.
بداية دورة حياة الصفحة - في هذه المرحلة، يتم إعداد كائنات الطلب والاستجابة. إذا كان طلبًا قديمًا أو إعادة نشر، فسيتم تعيين خاصية IsPostBack الخاصة بالصفحة على التصحيح. تم أيضًا تعيين خاصية صفحة ULCulture.
تهيئة الصفحة - خلال هذه المرحلة، يتم تعيين معرفات فريدة لعناصر التحكم الموجودة على الصفحة ويتم تطبيق السمات عن طريق تعيين خاصية UniqueID. بالنسبة لطلب جديد، يتم تحميل بيانات إعادة النشر وتتم استعادة خصائص التحكم إلى قيم حالة العرض الخاصة بها.
تحميل الصفحة - في هذه المرحلة، يتم تعيين خصائص التحكم باستخدام حالة العرض وقيم حالة التحكم.
التحقق من الصحة - يتم استدعاء أسلوب التحقق من الصحة الخاص بعنصر تحكم التحقق من الصحة وتنفيذه بنجاح، ويتم تعيين خاصية IsValid الخاصة بالصفحة على true.
معالجة حدث إعادة النشر - إذا كان الطلب عبارة عن إعادة نشر (طلب قديم)، فسيتم استدعاء معالج الحدث ذي الصلة.
عرض الصفحة - في هذه المرحلة، يتم حفظ حالة عرض الصفحة وجميع عناصر التحكم. تستدعي الصفحة طريقة العرض لكل عنصر تحكم، وتتم كتابة الإخراج المقدم إلى فئة OutputStream في خصائص استجابة الصفحة.
تم إلغاء تحميلها - يتم تقديم الصفحة المعروضة للعميل ويتم إلغاء تحميل سمات الصفحة، مثل الاستجابات والطلبات، ومسحها بالكامل.
في كل مرحلة من دورة حياة الصفحة، يتم تشغيل الصفحة لبعض الوقت وسيتم تشفيرها. معالج الحدث هو في الأساس وظيفة أو روتين فرعي مرتبط بحدث ما، باستخدام خصائص تعريفية أو معالجات مثل OnClick.
فيما يلي أحداث دورة حياة الصفحة:
PreInit - PreInit هو الحدث الأول في دورة حياة الصفحة. فهو يتحقق من خاصية IsPostBack ويحدد ما إذا كانت الصفحة قد تم إعادة نشرها أم لا. يقوم بتعيين السمات والصفحات الرئيسية، وإنشاء عناصر تحكم ديناميكية، والحصول على قيم خصائص ملف تعريف القيمة وتعيينها. يمكن معالجة هذا الحدث عن طريق تجاوز أسلوب OnPreInit أو إنشاء معالج Page_PreInit.
Init - يقوم الحدث Init بتهيئة خصائص التحكم وإنشاء شجرة التحكم. يمكن معالجة هذا الحدث عن طريق التحميل الزائد لأسلوب OnInit أو إنشاء معالج Page_Init.
InitComplete - يسمح حدث InitComplete بتتبع حالة العرض. قم بتشغيل تتبع حالة العرض لجميع عناصر التحكم.
LoadViewState - يسمح حدث LoadViewState بتحميل معلومات حالة العرض في عنصر التحكم.
LoadPostData - خلال هذه المرحلة، تتم معالجة محتويات جميع حقول الإدخال المحددة بواسطة العلامات .
التحميل المسبق - يحدث التحميل المسبق قبل تحميل بيانات إعادة النشر في عنصر التحكم. يمكن معالجة هذا الحدث عن طريق تجاوز أسلوب OnPreLoad أو إنشاء معالج Pre_Load.
التحميل - يتم رفع الحدث Load أولاً بواسطة الصفحة ثم بشكل متكرر إلى كافة عناصر التحكم التابعة. يتم إنشاء عناصر التحكم في شجرة التحكم. يمكن معالجة هذا الحدث عن طريق التحميل الزائد لأسلوب OnLoad أو إنشاء معالج Page_Load.
LoadComplete - تكتمل عملية التحميل، ويتم تشغيل معالجات أحداث التحكم، ويتم التحقق من صحة الصفحة. يمكن معالجة هذا الحدث عن طريق التحميل الزائد لأسلوب OnLoad أو إنشاء معالج Page_LoadComplete.
PreRender - يحدث حدث PreRender قبل عرض المخرجات مباشرةً. من خلال التعامل مع هذا الحدث، يمكن للصفحات وعناصر التحكم إجراء أي تحديثات قبل عرض المخرجات.
PreRenderComplete - عندما يتم رفع حدث PreRender لجميع عناصر التحكم التابعة في حلقة، يضمن هذا الحدث اكتمال مرحلة العرض المسبق.
SaveStateComplete - يتم حفظ حالة التحكم في الصفحة. يتم حفظ معلومات التخصيص وحالة التحكم وعرض الحالة.
UnLoad - مرحلة UnLoad هي المرحلة الأخيرة من دورة حياة الصفحة. فهو يطلق الحدث UnLoad لجميع عناصر التحكم في الحلقة، وأخيرًا للصفحة نفسها. وأخيرًا يكتمل تنظيف وتحرير جميع الموارد والمراجع، مثل اتصالات قاعدة البيانات. يمكن معالجة هذا الحدث عن طريق ضبط أسلوب OnLoad أو إنشاء معالج Page_UnLoad.