تبلیغات
6 تایی - چرخه ی حیات در Asp.net

امروز:

چرخه ی حیات در Asp.net

چرخه ی حیات / life cycle ASP.Net معین می نماید که چگونه :


clicksite.ir

آموزش asp.net,آموزش asp.net mvc,آموزش asp.net با c#,clicksite.ir

ASP.Net صفحات را جهت تولید خروجی های پویا (dynamic output) پردازش می نماید .

پروگرام و صفحات آن نمونه سازی instantiate)) و پردازش شده اند.

ASP.Net صفحات را به صورت پویا ترجمه یا کامپایل می نماید .


چرخه ی حیات ASP.Net به دو گروه تقسیم می شود:

Application life cycle (چرخه ی حیات پروگرام )

page life cycle (چرخه ی حیات صفحه)


چرخه ی حیات پروگرام (application life cycle) ASP.Net :

چرخه ی حیات پروگرام کاربر دی مراحل زیر را حاوی می شود:

کاربر درخواست / request برای دسترسی به application resources (منابع برنامـه ی کاربر دی) می دهد، پس صفحه ی مرورگر این درخواست را به سرور وب ارسال می نماید .

یک pipeline (خط ارتباطی) یکپارچه و متحد الشکل request ها را دریافت کرده به دنبال آن رخدادهای زیر روی می دهند:


یک شئ (object) از کلاس ApplicationManager ایجاد می شود.

یک شئ (نمونه از نوع شئ) از کلاس HostingEnvironment ایجاد می گردد و این شئ اطلاعاتی مربوط به منابع ارائه دهد.


مورد های سطح بالا (top-level items) داخـل برنامـه ی فرد دی مورد نظر (application) کمپایل می شوند.

Response object ها ایجاد می شوند. Application object هایی از قبیل HttpContext, HttpRequest و HttpResponse ایجاد شده و میزان دهی اولیه (initialize) می شوند.

نمونه (instance) ای از شئ HttpApplication ایجاد گردیده به request (درخواست ) تخصیص داده می شود. این request به وسیله ی کلاس HttpApplication پردازش می شود. برای اینکه کلاس نام برده request مورد نظر را پردازش نماید ، رخدادهای مفرق ی فعال (raise) می شوند.


چرخه ی حیات صفحه (page lifecycle) asp.net:

زمانی که صفحه درخواست (request) می شود، صفحه ی درخواست شده در حافظه ی سرور بارگذاری و پردازش شده و به مرورگر ارسال می گردد، سبعد از حافظه ی سرور پاک می شود. هر از این مراحل، method ها (متد) و event هایی (رخداد) را حاوی می شود که می توانند طبق نیاز پروگرام مربوطه بازنویسی شوند(override). به جمله دیگر شما می توانید برای بازنویسی (override) کد پیش فرض کد را بنویسید (کد پیش فرض را بازنویسی بکنید ).

کلاس page یک hierarchical tree (نمودار درختی سلسله مراتبی) متشکل از تمام ی کنترل های روی صفحه ایجاد می نماید . تمام ی کامپوننت های روی صفحه، به جز directive ها (یک سازه ی زبان یا language construct که تعیین می نماید کامپایلر چگونه ورودی / input خود را پردازش نماید )، بخش ی از این control tree هستند . می توانید با اضافه کردن trace= "true" به page directive دستورات این control tree را مشاهده بکنید .


مراحل مربوط به page lifecycle (چرخه ی حیات صفحه) به شرح زیر می باشند :

میزان دهی اولیه (initialization)

نمونه سازی اولیه ی (instantiation) کنترل ها روی صفحه

اجرای کدهای کنترل کننده ی رویدادها (Execution of the events handler codes)

Page rendering (بارگذاری یا نمایش صفحه)


درک page cycle در نوشتن کدهایی یاری می نماید که پروگرام نویس با نوشتن آن کدها می خواهد اتفاق خاصی در یک وهله از page lifecycle (چرخه ی حیات صفحه) رخ دهد. این امر همین طور در نوشتن control های سفارشی یا اختصاصی، و میزان دهی اولیه ی آنها در درست کمک می نماید ، همین طور property (خصوصیت های) آنها را با داده های view-state پر کرده (populate) و control behavior code (کد کنترل عملکرد) را اجرا می نماید .


در ادامه مراحل مختلف مربوط به یک صفحه یا page ASP.Net ارائه شده اند:

Page request (وهله ی درخواست صفحه) - وقتی ASP.Net یک page request دریافت می نماید ، تصمیم می گیرد که آیا صفحه را تجزیه (parse) کمپایل نماید یا اینکه یک نسخه ی ذخیره شده (cached version) از پیج موجود است ، بر این اساس جواب فرستاده می شود.

شروع چرخه ی حیات صفحه (start of the page lifecycle). در این وهله اشیاء (object) request response تنظیم میزان دهی می شوند. چنانچه request، request قدیمی یا postback (اسمی است که به فرایند تحویل صفحه ی asp.net به سرور جهت پردازش، داده می شود) باشد, در آن صورت ویژگی IsPostBack بر روی میزان true تنظیم می شود. همین طور ویژگی (property) UICulture صفحه تنظیم (میزان دهی) می شود.

میزان دهی اولیه ی صفحه (page initialization). در این وهله با میزان دهی (set) ویژگی (property) UniqueID، به کنترل های روی صفحه ID (شناسه) های منحصر بفرد اختصاص داده شده به دنبال آن تم های گرافیکی به control ها اعمال می شوند. برای یک درخواست جدید داده های postback بارگذاری شده وproperties / control ویژگی های control ها در مقادیر view state ذخیره می شوند.

بارگذاری صفحه (page load) - در این وهله ویژگی های control با استفاده از مقادیر view state و control state تنظیم می شوند.

اعتبارسنجی (validation) – تابع اعتبارسنجی فراخوانی شده بعد از اجرای خوب یت آمیز اعتبار سنجی, ویژگی (property) IsValid صفحه یا page روی true تنظیم می شود (میزان true به ویژگی isvalid تخصیص داده می شود).

Postback event handling (مدیریت رویداد postback) – در صورتی که درخواست postback باشد، event handler (مدیریت کننده ی رخداد) مربوطه فراخوانده (invoke) می شود.

Page rendering (بارگذاری و نمایش صفحه)- در این وهله view state مربوط به صفحه و تمام ی control ها ذخیره می شوند. صفحه / page متد render را برای ی تک تک control ها صدا زده خروجی (output) فرایند اجرا نمایش صفحه (rendering) را داخـل کلاس OutputStreamِ ویژگی response صفحه را write می نماید .

Unload(تخلیه بار)- صفحه ی بارگذاری شده (rendered page) به سرویس گیرنده (client) ارسال می شود و همین طور ویژگی های page (page properties) از قبیل Response Request همگی unload شده پاک می گردند.


رویدادهای ASP.Net page life cycle

در هر وهله از چرخه ی حیات صفحه (page lifecycle event), صفحه رویداد هایی (event) را فعال می نماید که می توان برای آن ها کد نوشت. event handler (کنترلگر یا مدیریت کننده ی رخداد) اساسا تابع (function) یا زیرروال (subroutine) مقید یا متصل به رویداد (event) است که از خصیصه های اعلانی یا تعریف کننده (declarative attributes) مانند onclick یا handle مصرف می نماید .


ذیل رویدادهای مربوط به چرخه ی حیات صفحه (page lifecycle event) جهت شما فهرست شده:

Prelnit: اولین رویداد در چرخه ی حیات صفحه است ، که ویژگی (property) IsPostBack را ارزیابی کرده معین می نماید که صفحه یک postback است یا خیر (این رویداد در واقع به شما اجازه می دهد وضعیت page request (درخواست صفحه) را تحلیل بکنید , جهت مثال چک بکنید آیا صفحه ی مورد نظر در جواب به postback بارگذاری می شود یا خیر). Prelnit تم ها و master page (صفحات اصلی ) را تنظیم میزان دهی می نماید ، کنترل های پویا (dynamic controls) ایجاد می نماید همین طور به شما این امکان را می دهد مقادیر get و set ویژگی (property) را میزان دهی می نماید .

Init: این رویداد control property را میزان دهی اولیه می نماید ، پس control tree ساخـته می شود ( این رویداد در واقع بعد از اینکه server control میزان دهی اولیه شده باشد روی می دهد / فعال یا اجرا می شود.

InitComplete: این رویداد امکان مسیریابی view state را فراهم می نماید . تمام کنترل ها مسیریابی view-state را فعال می کنند (وقت ی روی می دهد که میزان دهی اولیه صفحه (page initialization) به اتمام رسیده باشد).

LoadViewState: این رویداد امکان بارگذاری اطلاعات view state را در control ها فراهم می نماید .

LoadPostData: طی این وهله تمام محتویات فیلدهای ورودی که با تگ
تعریف شده اند، پردازش می شوند.


PreLoad : قبل از اینکه داده های postback در کنترل ها بارگذاری شوند، اجرا می شود. این رویداد می تواند با overloading متد OnPreLoad یا ایجاد یک Page_PreLoad handler مدیریت شود.

Load: این رویداد در ابتدا برای صفحه (page) و پس به صورت بازگشتی (recursive) برای تمام کنترل ها (control) اجرا می شود. کنترل هایی در control tree ایجاد می شوند. این رویداد می تواند با اضافه بارگذاری (overload کردن) تابع OnLoad یا ایجاد Page_Load handler مدیریت شود.

LoadComplete: فرآیند بارگذاری تکمیل شده، control event handler ها اجرا شده اعتبار سنجی صفحه (page validation) انجام می شود. این رویداد به وسیله ی اضافه بارگذاری (overload) متد OnLoadComplete یا ایجاد یک Page_LoadComplete handler مدیریت می شود.

PreRender: این رویداد درست قبل از اینکه خروجی render شود اجرا می گردد. با مدیریت این رویداد، صفحه ها و کنترل ها می توانند قبل از اجرا و نمایش (render) خروجی، هرگونه آپدیت ی انجام دهند.

PreRenderComplete : از آنجایی که رخداد (event) PreRender به صورت بازگشتی (recursive) مخصوص ی کلیه ی control های فرزند (child control) فعال واجرا می شوند، رخداد PreRenderComplete از تکمیل وهله ی pre-rendering اطمینان حاصل می نماید (باعث می شود وهله ی pre-rendering کامل اجرا شود).

SaveStateComplete: Control state در صفحه ذخیره می شود. همین طور personalization و اطلاعات مربوط به control state و view state ذخیره می گردند، علامت یا نشانه گذاری با HTML شروع می شود. این وهله را می توان با overload کردن متد render یا ایجاد یک Page_Render handler مدیریت کرد.

UnLoad: این وهله آخرین وهله ازچرخه ی حیات صفحه (page lifecycle) است . رویداد UnLoad را در این وهله برای تمام ی کنترل ها به صورت بازگشتی (recursive) و درانتها برای صفحه اجرا (فعال) می نماید . آخرین پاکسازی (cleanup) انجام شده و تمام ی منابع (resources) و ارجاعات (reference)، از قبیل اتصالات به پایگاه داده آزاد می شوند. این رویداد به وسیله ی تعریف (modify کردن) متد OnUnLoad یا ایجاد یک Page_UnLoad handler مدیریت می شود.


نوشته شده در : سه شنبه 24 فروردین 1395  توسط : مطالب علمی 2015.    نظرات() .

 
لبخندناراحتچشمک
نیشخندبغلسوال
قلبخجالتزبان
ماچتعجبعصبانی
عینکشیطانگریه
خندهقهقههخداحافظ
سبزقهرهورا
دستگلتفکر