چهارشنبه, ۳ بهمن, ۱۴۰۳ / 22 January, 2025
رویدادها در برنامه های وب دات نت
یک برنامه در مدت زمان حیات خود با رویدادهای متعددی مواجه می گردد. پس از بروز رویداد ، روتین پاسخگو مسئولیت برخورد با رویداد محقق شده را برعهده خواهد گرفت . برنامه های وب نیز از این قاعده مستثنی نبوده و در مدت زمان حیات خود با رویدادهای متعددی مواجه می گردند . رویدادها و نحوه برخورد با آنان دربرنامه های وب ، دارای تفاوت هائی نسبت به برنامه های ویندوز است . رویدادها در برنامه های وب در سه سطح : برنامه ، صفحات و کنترل های سرویس دهنده ، محقق می گردند. ترتیب و نحوه اجرای رویدادها ، تاثیری مستقیم بر نحوه پاسخگوئی به آنان توسط کدهای نوشته شده در یک برنامه دارد. در این مقاله قصد داریم به بررسی جایگاه و نقش رویدادها در چرخه حیات یک برنامه وب پرداخته و از این رهگذر با تفاوت های موجود بین چرخه حیات یک برنامه وب و یک برنامه ویندوز بیشتر آشنا شویم .
● رویداد ها در چرخه حیات یک برنامه وب
حیات یک برنامه وب ، وابسته و متاثر از Session های فعال می باشد . مادامیکه Session فعال وجود داشته باشد ، برنامه وب نیز به زندگی خود ادامه خواهد داد . فرم های وب ، دارای عمر بسیار اندک و ناچیزی می باشند. یک برنامه وب با درخواست صفحه شروع آن توسط مرورگر ، زندگی خود را آغاز می نماید . در ادامه ، سرویس دهنده وب وارد عملیات شده و یک فایل اجرائی ( فایلی با پسوند DLL ) را اجراء می نماید . هدف نهائی فایل فوق ، پاسخگوئی به درخواست ارسالی توسط مرورگر است . برنامه فوق ، در ادامه یک نمونه از فرم وب درخواست شده را ایجاد و HTML لازم بمنظور پاسخ دادن به درخواست را تولید و در نهایت پاسخ مربوطه را برای مرورگر ارسال می نماید . پس از اتمام فرآیند فوق ، نمونه فرم ایجاد شده نیز از بین خواهد رفت .
زمانیکه مرورگر دارای تگ های HTML تولیده شده می باشد ، کاربر قادر به ورود اطلاعات و داده مورد نظر در Text boxs ، انتخاب دکمه ها و انجام سایر عملیات می باشد . وضعیت فوق ، تا زمانیکه یک رویداد Post-back محقق گردد ( نظیر کلیک نمودن بر روی یک دکمه ) ، ادامه می یابد . پس از محقق شدن رویداد Post-back ، مرورگر داده همراه صفحه ( View State ) را برای سرویس دهنده ارسال تا پردازش های لازم با توجه به رویداد محقق شده ، انجام شود. زمانیکه سرویس دهنده ، View State ( داده همراه با یک صفحه ) را دریافت می نماید ، یک نمونه جدید از فرم وب را ایجاد و داده آن را با استفاده از View State تکمیل و متناسب با رویداد محقق شده ، پردازش های لازم را انجام خواهد داد . پس از اتمام عملیات توسط سرویس دهنده ، نتایج بصورت تگ های HTML مجددا" برای مرورگر ارسال و نمونه فرم وب ایجاد شده ، از بین خواهد رفت .
زمانیکه کاربر به عملیات خود خاتمه داده و مرورگر را غیر فعال می نماید ، Session مربوط به آن نیز خاتمه می یابد . درصورتیکه Session های متعلق به سایر کاربران وجود نداشته باشد ، به حیات برنامه نیز خاتمه داده می شود ( عملا" وضعیت فوق کمتر اتفاق می افتد ) . ASP.NET با استفاده از garbage collection ، مدیریت حافظه را انجام می دهد ( سرویس ارائه شده توسط CLR فریمورک دات نت ) . در فرآیند فوق ، سرویس دهنده بصورت ادواری ردیابی مراجعات به اشیاء را انجام و در صورتیکه از یک شی مدت زمان زیادی استفاده نشده باشد ، شی مربوطه از حافظه حذف و فضای استفاده شده توسط آن نیز آزاد می گردد . با توجه به ماهیت عملیات فوق ، نمی توان بطور دقیق از زمان محقق شدن رویداد Application_End ، آگاهی یافت .
● نگهداری داده در یک فرم وب
با توجه به اینکه فرم های وب دارای عمر بسیار کوتاهی می باشند ، ASP.NET عملیات خاصی را بمنظور نگهداشت داده درج شده در کنترل های موجود بر روی یک فرم وب، انجام می دهد. داده های درج شده در کنترل ها ، پس از هر درخواست ارسال شده و از طریق Page_init مجددا" در کنترل های مربوطه، بازیابی ( Restore) می گردند. داده موجود در این نوع کنترل ها در ادامه و از طریق رویداد Page_Load در دسترس قرار خواهند گرفت . داده ئی را که ASP.NET بین هر یک از درخواست ها ، نگهداری می نماید ، view state فرم وب نامیده شده و صرفا" در محدوده همان فرم وب ، قابل دستیابی و استفاده است. بمنظور استفاده از داده ورودی در یک فرم وب برای سایر فرم های وب ، نیازمند ذخیره سازی داده در یک متغیر وضعیت از نوع اشیاء Application و یا Session می باشیم .
اشیاء فوق ، دو سطح متفاوت از بعد دستیابی را ارائه می نمایند :
۱) متغیرهای Application state . متغیرهای فوق ، برای تمامی کاربران قابل دسترس و استفاده می باشند. رفتار این نوع متغیرها نظیر متغیرهای سراسری با قابلیت دستیابی چندکاربره می باشد. تمامی Sessions قادر به خواندن و نوشتن این نوع متغیرها ، می باشند .
۲) متغیرهای Session state . متغیرهای فوق، صرفا" برای یک Session ( کاربر) قابل دسترس و استفاده می باشند. عملکرد این نوع از متغیرها نظیر داده های سراسری در یک برنامه استاندارد ویندوز می باشد . صرفا" Session فعال ، قابلیت دستیابی به وضعیت Session خود را دارا خواهد بود .
متغیرهای Session و Application ، بصورت On the fly و از طریق کد نوشته شده در برنامه ، ایجاد می گردند ( عدم استفاده از روش های متداول بمنظور تعریف یک متغیر ). در نمونه برنامه زیر ، یک متغیر Session با نام Clicks تعریف شده است . متغیر فوق ، تعداد دفعاتی که بر روی دکمه Button۱ کلیک می گردد را در خود ذخیره و در نهایت مقدار مورد نظر در خروجی نمایش داده می شود .
Private Sub Button۱_Click ( ByVal sender As System.Object , _ ByVal e As System.EventArgs ) Handles Button۱.Click Session ( "Clicks") = Session ( "Clicks") + ۱ Response.Write("Number of Clicks : " & Session( "Clicks") End Sub
ایران مسعود پزشکیان دولت چهاردهم پزشکیان مجلس شورای اسلامی محمدرضا عارف دولت مجلس کابینه دولت چهاردهم اسماعیل هنیه کابینه پزشکیان محمدجواد ظریف
پیاده روی اربعین تهران عراق پلیس تصادف هواشناسی شهرداری تهران سرقت بازنشستگان قتل آموزش و پرورش دستگیری
ایران خودرو خودرو وام قیمت طلا قیمت دلار قیمت خودرو بانک مرکزی برق بازار خودرو بورس بازار سرمایه قیمت سکه
میراث فرهنگی میدان آزادی سینما رهبر انقلاب بیتا فرهی وزارت فرهنگ و ارشاد اسلامی سینمای ایران تلویزیون کتاب تئاتر موسیقی
وزارت علوم تحقیقات و فناوری آزمون
رژیم صهیونیستی غزه روسیه حماس آمریکا فلسطین جنگ غزه اوکراین حزب الله لبنان دونالد ترامپ طوفان الاقصی ترکیه
پرسپولیس فوتبال ذوب آهن لیگ برتر استقلال لیگ برتر ایران المپیک المپیک 2024 پاریس رئال مادرید لیگ برتر فوتبال ایران مهدی تاج باشگاه پرسپولیس
هوش مصنوعی فناوری سامسونگ ایلان ماسک گوگل تلگرام گوشی ستار هاشمی مریخ روزنامه
فشار خون آلزایمر رژیم غذایی مغز دیابت چاقی افسردگی سلامت پوست