Мастер-страницы ASP.NET и состояние просмотра
-
03-07-2019 - |
Вопрос
Я хочу улучшить производительность своего сайта не потому, что он работает плохо, а просто в качестве общего упражнения.Обычное предложение для сайтов asp.net — по возможности удалять состояние просмотра.Я считаю, что это можно сделать для каждого элемента управления на странице отдельно или для всей страницы.
Мой вопрос: если я отключу состояние просмотра страницы, остановится ли это состояние просмотра элементов управления на главной странице (насколько я понимаю, главная страница на самом деле является элементом управления на странице).
Решение
Да, страница является источником потока страниц.Таким образом, отключение состояния просмотра для страницы выводит рендеринг состояния просмотра из процесса OnInit.Лучше спросить, почему отключение состояния просмотра главной страницы дает тот же результат?
Другие советы
Есть простой способ сжать все ваше состояние просмотра.
Шаг 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>
<browser refID="Default">
<controlAdapters>
<adapter controlType="System.Web.UI.Page" adapterType="[YourNamespaceGoesHere].SessionPageStateAdapter" />
</controlAdapters>
</browser>
</browsers>
Когда вы сейчас запустите свои страницы, вы должны обнаружить, что размер вашего состояния просмотра упал до нескольких байт.Класс SessionPageStateAdapter перехватывает состояние представления до того, как оно будет передано браузеру, и удерживает его на сервере в состоянии сеанса.Часть состояния просмотра, которая по-прежнему отправляется клиенту, представляет собой просто идентификатор, который используется для восстановления исходного состояния просмотра, когда страница отправляется обратно на сервер.
Возможно, вам будет полезна эта статья:
http://msdn.microsoft.com/en-us/library/ms972976.aspx
Прежде чем оптимизировать сайт, сделайте небольшое замечание: оптимизировали ли вы сервер, убедившись, что все файлы заархивированы перед отправкой.
В противном случае это даст вам хороший импульс еще до того, как вы начнете возиться со страницей.