» 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 قرار داد.