ASP.NET Masterpages и viewstate - PullRequest
       22

ASP.NET Masterpages и viewstate

3 голосов
/ 14 октября 2008

Я хочу улучшить производительность своего сайта не потому, что он работает плохо, а просто как общее упражнение. Обычное предложение для сайтов asp.net - по возможности удалять viewstate. Я считаю, что это может быть сделано каждым элементом управления на странице отдельно или для всей страницы.

У меня вопрос: если я отключу состояние просмотра страницы, это остановит состояние просмотра элементов управления на главной странице (насколько я понимаю, главная страница на самом деле является элементом управления на странице).

Ответы [ 4 ]

3 голосов
/ 15 октября 2008

Есть простой способ уменьшить все ваши представления.

Шаг 1. Создайте новый класс, который выглядит следующим образом:

Imports System  
Imports System.Web.UI

Public Class SessionPageStateAdapter
    Inherits System.Web.UI.Adapters.PageAdapter

    Public Overrides Function GetStatePersister() As System.Web.UI.PageStatePersister

        Return New SessionPageStatePersister(Page)

    End Function
End Class

Шаг 2. Добавьте папку App_Browsers в свой проект.

Шаг 3. В новой папке App_Browsers добавьте новый файл default.browser, который выглядит следующим образом.
<browsers><br> <browser refID="Default"><br> <controlAdapters><br> <adapter controlType="System.Web.UI.Page" adapterType="[YourNamespaceGoesHere].SessionPageStateAdapter" /><br> </controlAdapters><br> </browser><br> </browsers>

Когда вы запустите свои страницы сейчас, вы увидите, что размер вашего состояния просмотра уменьшился до нескольких байтов. Класс SessionPageStateAdapter перехватывает состояние представления перед его передачей в браузер и удерживает его на сервере в состоянии сеанса. Часть состояния просмотра, которое все еще отправляется клиенту, является просто идентификатором, который используется для восстановления исходного состояния просмотра, когда страница отправляется обратно на сервер.

1 голос
/ 14 октября 2008

Да, страница является источником потока страниц. Таким образом, отключение состояния просмотра для страницы выводит визуализацию состояния просмотра из процесса OnInit. Лучше задать вопрос: почему отключение режима просмотра главной страницы делает то же самое?

1 голос
/ 14 октября 2008

Просто короткое примечание перед оптимизацией сайта, оптимизировали ли вы сервер, убедившись, что все файлы перед отправкой были сжаты.

Если нет, то вы получите хороший импульс еще до того, как начнете возиться со страницей.

http://www.codinghorror.com/blog/archives/000059.html

1 голос
/ 14 октября 2008

Эта статья может оказаться полезной для вас:
http://msdn.microsoft.com/en-us/library/ms972976.aspx

...