ПредишенСледващото

Как да премахнете viewstate от страницата
За разработчици не харесват Asp.Net, така че е огромният обем на страници. Състоянието на компонентите на сървъра се съхраняват директно на страницата, на ViewState в скрито поле, извадете, че без осезаеми последици, на пръв поглед, не е възможно това. Най- "мазни" страници могат да се съхраняват в него мегабайта данни.

На мястото на ужас и объркване идва желанието да се разбере как да се премахне ViewState, или най-малкото, да се намали количеството на съхраняваната информация в него?

За съжаление, съдържанието на ASP.NET страници не могат да бъдат ръчно формация. И това предизвиква голямо негодувание сред някои разработчици. Например, в една и съща PHP програмист напълно генерира съдържанието на страницата чрез контролиране на всеки символ. Между другото, в Asp.Net MVC такава грозота като ViewState, вече не съществува.

Нека да видим защо имате нужда от ViewState, както и че тя се съхранява? Да вървим!

ViewState съхранява информация за всички сървърни контроли. Всеки един от обектите на контрол, която runat = "сървър" се съхранява там;

ViewState следи състоянието на компонентите на сървъра;

Когато рестартирате страницата възстановява състоянието на компонентите;

Всички данни се съхраняват в поредица форма в скрито поле на страницата.

От изложеното по-горе става ясно, че ViewState - нещо полезно и грубото му спиране ще доведе до факта, че след контролите рестартиране страница вече няма да запазват информацията, която влезе, всички променени свойства ще бъдат заменени в неизпълнение. Като цяло, играта е да бъдете много внимателни.

ViewState отстраняване може да се направи по два начина:

премахнете ViewState в контрола, а не съхраняване на информация за състоянието им;

прехвърли поле съхранение състоянието от латентната ViewState на сървъра на приложения.

Нека да разгледаме по-подробно всеки метод.

Премахване ViewState свойства чрез EnableViewState

Във всяка контрола Asp.Net сървъра имот EnableViewState. По подразбиране е вярно. Това означава, че елементът запазва състоянието си в ViewState на страницата. Ако можете да контролирате свойствата потушат EnableViewState = "фалшиво", а след това състоянието му вече няма да се съхранява. Например, ако имате етикета в селото, които най-Postback не променя свойствата му, че е възможно и дори необходимо, за да изключите ViewState.

Внимателно си играе с тази функция, в противен случай може да загуби на POST за текущото състояние на контрол.

Забележка. Можете да деактивирате ViewState на ниво страница, пускането в атрибут етикет Page EnableViewState = "фалшиво". След това поле ViewState скрит ще изчезне от страницата и всички контроли вече ще няма да съхранява данни за състоянието им.

Трансфер състояние на съхранение от ViewState на сървър на приложения

Този метод е по-скоро като него, защото В действителност ние не забраните, но просто да промените мястото за съхранение на информация за състоянието на компонентите на сървъра. Ние ще се промени поведението на страницата с помощта на комбинацията от клас PageAdapter System.Web.UI.Adapters.

Няколко реда за това, което страницата адаптер? Тази страница добавка подразбиране манипулатор, който ви позволява да се наложи над поведението на страницата.

В нашия уеб приложение MyPageAdapter.cs създаде клас със следното съдържание:

Ето, ние пренапише местата за съхранение на състоянието на компонентите. HiddenFieldPageStatePersister по подразбиране (това е нашата ViewState скрито поле на страницата). Ние го замени с SessionPageStatePersister, т.е. Ние се посочи, че сега ще се съхранява състоянието на оглед на ASP.NET страница на уеб сървъра.

Сега трябва да направим нашите страници знаят, че имат такъв PageAdapter. За да направите това, да създадете файл със следното съдържание BrowserFile.browser каталога App_Browsers нашия сайт:

Разширение на файла .browser обикновено са предназначени за определяне на възможностите на браузърите. Например, за да се даде на различни версии на уебсайтовете за настолни компютри и мобилни браузъри. Адаптери могат да използват данните от този файл, за да се адаптират поведението си. Това, което всъщност направих.

Тук по принцип и всички! Сега всички данни на показвания в състояние на сесията, съхранени на сървъра на уеб приложения.

1. С помощта на точка разстояние свойства EnableViewState имат контроли, които не се променят тяхното състояние, когато на POST, можете да намалите количеството информация, елементарно в ViewState скрито поле на страницата, на.

2. Използвайте контрола трансфер съхранение на държавата от клиента към сървъра страница, можете да се постигне значително намаляване на теглото страници. Запис 200 KB намалена до лаконичен

Можете също така да се интересуват от:

Свързани статии

Подкрепете проекта - споделете линка, благодаря!