» Viewstate در ASP.NET

يكي از وضعيتهايي كه مديريت آن توسط ASP.NET صورت مي گيرد وضعيت كنترلهاي server است. برنامه نويساني كه ASP كلاسيك كار كرده اند حتما بياد دارند كه حفظ المانهاي HTML موجود در صفحه ASP كلاسيك هنگاميكه كاربر از يك صفحه به صفحه ديگري مي رفت كار بسيار مشكلي بود. HTML هيچ مانيزمي براي خفظ وضعيت المانهاي فرم ارائه نمي دهد و برنامه نويسان مجبوربودند خودشان روشي براي ذخيره و بازيابي اين اطلاعات ابداع كنند. ASP.NET با ارئه كنترلهاي server اين مشكل را برطرف كرده است. تمام كنترلهاي server مي توانند وضعيت خود را حفظ كنند و براي اينكار از مكانيزمي بنام ViewState استفاده مي كنند. بطور خلاصه Viewstate يك فيلد پنهاني است كه اطلاعات وضعيت تمام المانهاي موجود در صفحه ﴿فرم﴾ را در خود نگهداري مي كند.

از كتاب آموزشي ASP.NET انتشارات ناقوس

بصورت پيش فرض كليه كنترلهاي ASP.NET مقادير خواص مختلف خود را در انتقال بين صفحات حفظ مي كنند اگر شما متني را به يك كنترل برچسب ﴿ Label ﴾ نسبت داده و فرم را تائيد ﴿ Submit ﴾ نمائيد هنگاميكه فرم دوباره رندر مي شود مقدار كنترل بصورت قبلي و از پيش رزرو شده نمايش داده ميشود.

قدرت Viewstate در اينست كه به نوع خاصي از سرور يا مرورگر بستگي ندارد. حتي در شرايط خاص به كوكي ها متغيرهاي Session و يا متغيرهاي Application بستگي ندارد. Viewstate در يك صفحه رندر شده بصورت يك فيلد پنهان ﴿ Hidden ﴾ اتوماتيك تحت عنوان VIEWSTATE__ ظاهر مي شود.

Viewstate يا وضعيت موجود مي تواند تاثيرات مفيد و همچنين سويي روي كارايي سايت شما داشته باشد. اگر داده هاي يك پايگاه داده را به كنترلي كه Viewstate آن فعال ﴿ Enable ﴾ باشد نسبت دهيد ديگر نيازي نيست به پايگاه داده مراجعه كرده و هر بار كه صفحه به سرور فرستاده شده باشد و بطور اتوماتيك داده در Viewstate صفحه ﴿فرم﴾ در انتقال و پست بين صفحات از پيش رزرو شده است.

ذكر اين نكته ضروري است كه استفاده بيش از حد از Viewstate حجم صفحات و در نتيجه زمان لود صفحات را بيشتر مي كند. مي توان خاصيت Enable آنرا زماني كه مورد احتياج نيست برار False قرار داد.



Clicky Web Analytics