بررسی رویدادها در فرم های وب و نحوه رسیدگی به آنها و نشان دادن عکس العمل مناسب به کاربر
——————————————————————————–
در دنیای ویندوز رویدادهای در سه حالت امکان رخداد دارند. وقتی که کاربر از خود حرکتی نشان داده مانند حرکت موس، استفاده از صفحه کلید و غیر. نوع بعدی توسط خود سیستم اتفاق می افتد، مانند لود شدن یک صفحه و نوع سوم رویدادهایی است که بر اثر گذر زمان اتفاق می افتند. در دنیای وب به خاطر استفاده از پروتکل HTTP خیلی از این رویدادها متفاوت هستند. بعنوان مثال:
• وقتی که یک مرورگر یک صفحه را درخواست می کند.
• وقتی یک وب سرور کد یک صفحه را خط به خط اجرا می کند.
• خروجی عملیات سرور به مرورگر بوسیله HTML بازگشت داده می شود.
• در این مرحله آن صفحه دیگر در سرور وجود ندارد.
• کاربر عملیاتی بر روی صفحه انجام می دهد.
• اگر سرور احتیاج به عملیاتی در برابر کاربر دارد صفحه دوباره باید به سرور ارسال شود.
• و این چرخه همچنان ادامه می یابد.
فرم های وب امکان استفاده از رویدادها را برای کنترل هایی که بر روی فرم هستند به برنامه نویس می دهد. ولی این رویدادها در کامپیوتر کاربر اجرا نمی شوند، بلکه به سرور بازگشت داده شده و در آنجا کدهای مربوط به آن اجرا می شود. رویدادهایی که معمولا ً استفاده می شود رویدادهایی از نوع کلیک هستند. بعنوان مثال رویدادی مانند حرکت موس را نمی توان با هر بار حرکت آن به سرور فرستاد و منتظر یک جواب بود.
طول عمر یک فرم وب
یکی از مسائلی که برنامه نویس ِ ویژوال بیسیک در راه استفاده از فرم وب با آن روبرو است طول عمر یک فرم وب است. در نظر بگیرید در ویژوال بیسیک ۶ وقتی یک فرم در نمایشگر نمایش داده می شد و دوباره حذف می شد پنج رویداد رخ می داد، Form_Initialize ، Form_Load، Form_QueryUnload ، Form_Unload و Form_Terminate.
در مورد فرم های وب، وقتی یک مرورگر درخواست یک صفحه را می کند، در مرحله اول فرم وب بارگذاری می شود. در مرحله بعدی رویدادهای آن بررسی می شود و در مرحله بعدی قبل از اینکه کد HTML به مرورگر فرستاده شود از حافظه حذف می شود. هر بار که یک صفحه توسط مرورگر درخواست شود این عملیات تکرار می شود. اجازه دهید نگاهی به هر کدام از مراحل فوق بیندازیم:
• بارگذاری: این مرحله شباهت زیادی به Form_Initialize و Form_Load در ویژوال بیسیک ۶ دارد. وقتی این مراحل انجام شد رویداد Page_Load اتفاق می افتد. این رویداد اولین مکانی است که برنامه نویس می تواند برای صفحه خود برنامه بنویسد. مثلا ً اتصال به بانک اطلاعاتی و تنظیم کنترل ها را در این رویداد می توان نوشت.
• بررسی رویدادهای دیگر: اگر این اولین باری باشد که مرورگر این صفحه را درخواست می کند هیچ رویدادی برای اجرا شدن وجود ندارد. اما اگر قبلا ً این صفحه بارگذاری شده باشد و قرار باشد رویدادی اتفاق بیافتد در این مرحله کدهای مربوطه اجرا می شود.
• از بین رفتن: این مرحله، مرحله پایانی طول عمر یک فرم وب در حافظه سرور است. این مرحله معادل Form_Unload و Form_Terminate در ویژوال بیسیک قدیمی است. در این رویداد است که باید اتصال ها به بانک اطلاعاتی بسته شود و هر گونه شئای که در حافظه بار شده است دوباره پاک شود. در این مرحله، رویدادِ Page_Unload اتفاق می افتد.
انواع رویداد
انواع رویداد در فرم وب را می توان به اجزای زیر تقسیم بندی کرد:
• رویدادهای ذاتی
• رویدادهای طرف کاربر و رویدادهای طرف سرور
• رویدادهای Postback و non-Postback
• رویدادهای حبابی
• رویدادهای Application و Session
رویدادهای ذاتی
این دسته رویدادهایی هستند که در اکثر کنترل های فرم وب دیده می شوند، مانند کلیک.
رویدادهای طرف Client و رویدادهای طرف سرور
کنترل های ASP.NET Server فقط دارای رویدادهایی هستند که در سرور اجرا می شود و در مقابل کنترل های HTML دارای رویدادهایی هستند که در نزد کاربر اجرا می شوند. رویدادهایی مانند کلیلک در سرور رسیدگی می شوند ولی رویدادهایی مانند MouseMove در نزد کاربر.
رویدادهای Postback و non-Postback
رویدادهایی که در کنترل های ASP.NET اتفاق می افتد به سرور ارسال می شوند و در آنجا اجرا می شود. برای مثال رویداد OnChange برای یک جعبه متن در زمانی که کاربر متن را تغییر می دهد اتفاق نمی افتد بلکه منتظر می ماند تا صفحه به سرور ارسال شود، سپس این رویداد اتفاق می افتد. این روش در مقابل روشی که رویداد در نزد کاربر اتفاق بیافتد قرار دارد. هر یک از این روشها دارای معایب و مزایای مخصوص به خود هستند.
رویدادهای حبابی
کنترل هایی مانند DataGrid می توانند در خود کنترل های دیگری مانند ردیف داشته باشند و خود DataGrid به عنوان یک container برای کنترل کوچکتر باشد. این گونه کنترل های کوچکتر ( فرزند کنترل اصلی) می توانند دارای رویداد باشند. رویدادهایی که در آنها اتفاق می افتد به container فرستاده شده و container آن رویداد را به وسیله رویدادهایی مانند ItemCommand به برنامه نویس اطلاع می دهد. به این نوع از رویدادها، رویدادهای حبابی می گویند.
رویدادهای Application و Session
برای سازگاری با ASP کلاسیک، در دات نت رویدادهای مربوط به Application و Session وجود دارند، از جمله، ApplicationStart، ApplicationEnd، SessionStart و SessionEnd. این رویدادها برای یک صفحه خاص اتفاق نمی افتند بلکه برای کل پروژه هستند.
دیدگاه خود را بیان کنید.
باید وارد سایت شده باشید برای دیدگاه دادن