PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : نگهداری ViewState سمت Server



engeneer_19
5th March 2010, 09:56 PM
همانطور که می دانید ViewState نمایش دهنده وضعیت Page در آخرین پردازشی است که توسط Server انجام شده است و به صورت یک Hidden Input در محتویات Page به صورت encrypted نگهداری می شود.
بدیهی است در هر Request ، ViewState بین Client و Server در رفت و آمد می باشد و این یعنی اگر ViewState حجم زیادی داشته باشد سرعت Load شدن صفحه به شدت پایین می آید که این مسئله خلاف اصول اولیه طراحی Web Site می باشد. به عنوان مثال اگر شما از DataGrid استفاده می کنید که 100 رکورد را نمایش می دهد بسته به تعداد ستونهایی که دارید حجم ViewState ممکن است بین 100 تا 300 کیلو بایت افزایش یاید در حالی که به طور استاندارد حداکثر حجم Page باید 30 کیلو بایت باشد.
برای حل این مشکل راه هایی پیشنهاد می شود مثلا استفاده از Http Compression ولی یکی ازمناسب ترین روش ها نگهداری ViewState سمت Server می باشد مثلا در حافظه ای مثل Session.
برای قرار دادن ViewState در Session کافیست دو متد زیر که در کلاس Page به صورت Virtual تعریف شده اند را Override کنیم:


object LoadPageStateFromPersistenceMedum()
برای خواندن Page State از Session و قرار دادن آن به عنوان ViewState در Return Value و متد


void PageStateFromPersistenceMedum(object viewState)
برای ذخیره ViewState که در آرگومان ورودی متد وجود دارد.





http://uc-njavan.ir/images/141v0j9mvl9phxkcncbi_thumb.jpg (http://uc-njavan.ir/viewer.php?file=141v0j9mvl9phxkcncbi.jpg)








Figure 1

با استفاده از این روش حجم ViewState در Page دقیقا صفر بایت می شود در حالی که آبجکت ViewState سمت Server معادل وقتی است که از این روش استفاده نکرده باشید.
نکته : استفاده از این روش در Web Site هایی که تعداد بازدید کننده زیاد و حافظه Server کم دارند توصیه نمی شود.

منبع: www.persiadevelopers.com

استفاده از تمامی مطالب سایت تنها با ذکر منبع آن به نام سایت علمی نخبگان جوان و ذکر آدرس سایت مجاز است

استفاده از نام و برند نخبگان جوان به هر نحو توسط سایر سایت ها ممنوع بوده و پیگرد قانونی دارد