Как минимизировать размер представления страницы в asp.net? - PullRequest
9 голосов
/ 10 октября 2009

Как минимизировать размер представления страницы в asp.net? Пожалуйста, помогите.

Ответы [ 6 ]

19 голосов
/ 10 октября 2009

У вас есть несколько вариантов уменьшения ViewState:

  • Отключить ViewState для элементов управления, которые в нем не нуждаются (это наиболее эффективное решение). Например. если вы можете кэшировать некоторые данные на сервере, то вы можете привязывать любые элементы управления, связанные с данными, к каждому запросу, и нет необходимости сохранять все в ViewState.
  • Включить сжатие HTTP на сервере (IIS) . Это уменьшает размер страницы, отправляемой клиенту, включая ViewState.
  • Сжать ViewState . Это имеет дополнительное преимущество перед HTTP-сжатием: оно также уменьшает размер PostBacks (данные отправляются обратно на сервер), поскольку ViewState всегда отправляется обратно на сервер во время PostBack. Для этого есть разные подходы, например, как показано в этом блоге .
  • Храните ViewState на сервере вместо отправки его в скрытое поле со страницей. Самый простой способ сделать это - использовать SesionPageStatePersister , но есть другие решения, которые сохраняют ViewState на диск вместо использования Session ( см. Здесь, например, ).
5 голосов
/ 10 октября 2009

Большинство пунктов выделены в других ответах. Вот тот, который может быть полезен:

Сократите количество серверных элементов управления (например, элементов управления web / html), особенно тех, которые вам не нужны. Вместо этого используйте простые HTML-разметки.

Я видел слишком много случаев избыточных веб-элементов управления таблицами / строками / ячейками, в которых могут работать обычные

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

Я решил сохранить состояние просмотра на сервере в самой базе данных и не допускать его передачи в HTML клиенту, который увеличивает размер страницы. Вы можете расширить 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 голос
/ 10 октября 2009

Вы не можете минимизировать размер ViewState. Это ASP.NET, который сериализует / десериализует. Хотя вы можете выборочно отключить ViewState для элементов управления, которые ему не нужны.

0 голосов
/ 17 апреля 2015
   protected override PageStatePersister PageStatePersister
    {
        get
        {
            return new SessionPageStatePersister(this);
        }
    }

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

0 голосов
/ 10 октября 2009

Вы можете включить сжатие на сервере, чтобы минимизировать размер данных, передаваемых по сети, или сохранить viewState на диске и никогда не отправлять их клиенту.

...