Оптимизация просмотра состояния - PullRequest
0 голосов
/ 28 августа 2009

Hy,

Меня интересуют некоторые общие методы оптимизации в проекте ajax asp.net для Viewstate

(например, чтобы уменьшить размер viewstate, или просто как-то ускорить обзор, или другие, это должно быть общее обсуждение :-)).

Итак, какую оптимизацию вы используете для ViewState? Какие возможности предлагаются в Asp.net или Ajax framework?

Ответы [ 6 ]

2 голосов
/ 28 августа 2009

@ шелковистый прав, отключите его везде, где сможете. Мы стараемся отключить его на как можно большем количестве элементов управления.

Кроме того, как только вы используете как можно меньше, может стоить посмотреть на размещение чего-то подобного на ваших страницах (или, лучше, в классе базовой страницы)

Protected Overrides ReadOnly Property PageStatePersister() As PageStatePersister
    Get
        Return New SessionPageStatePersister(Me)
    End Get
End Property

Но это зависит от того, сколько у вас пользователей и сколько у вас памяти, и это предполагает, что вы используете сеансы.

Да, а в C # это:

protected override PageStatePersister PageStatePersister
{
    get
    {
        return new SessionPageStatePersister(this);
    }
}
2 голосов
/ 28 августа 2009

Отключение View State элементов управления, которые вам явно не нужны, например, на вашей странице много элементов управления, для которых может не потребоваться представление состояния, например, меню, некоторые гиперссылки, некоторые метки статистики отображения и т. Д., Немного их отключите.

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

Ваши идентификаторы управления похожи на следующие

PageContainer1_MyLoginContainerUserControl1_MyLoginForm1_MyUsername1

PageContainer1_MyCustomerDataGrid1_item0_MyCustomerNameLabel

Я знаю, это звучит немного плохо, но если вы заметили, что элементы сетки / списка помещают так много больших идентификаторов элементов управления, как это, мы заметили, что уменьшение определенных символов в идентификаторе также помогает улучшить размер страницы. В list / gridview и т. Д. Это улучшает это на 30-40%, также плохо работают и вложенные пользовательские элементы управления, когда вы действительно больше не думаете, что вам нужен идентификатор элемента управления, просто введите его максимум на 3 буквы.

1 голос
/ 22 ноября 2011

Что ж, я смог уменьшить свои состояния просмотра с 200-300 КБ до 62 БАЙТОВ, сохранив их на сервере и просто передавая GUID туда и обратно.

Я написал статью о том, как это сделать, расширив HiddenFieldPageStatePersister, на которую вы можете ссылаться:

http://ashishnangla.com/2011/07/21/reducing-size-of-viewstate-in-asp-net-webforms-by-writing-a-custom-viewstate-provider-pagestatepersister-part-12/

1 голос
/ 14 сентября 2009

Если вы никогда не читали TRULY Понимание ViewState , сделайте это сначала.

Что касается помощи AJAX с ViewState, я просто размышляю здесь, но если у вас есть вся страница в UpdatePanel, вы можете отключить ViewState для всей страницы

1 голос
/ 28 августа 2009

Меня могут критиковать за это: но в некоторых случаях вы можете сохранять состояние представления в сеансе, просто переопределяя методы страницы .

Чтобы сбалансировать мою карму, я также предлагаю вам отказаться от viewstate и session в будущих проектах;), например, попробовав Asp.NET MVC.

1 голос
/ 28 августа 2009

Лучшая оптимизация: храните в ней меньше вещей.

Но вам нужно быть конкретным. Вы испытываете проблему? Если да, с какими средствами управления? Твой собственный? Другие? Пожалуйста, разверните.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...