Pergunta

Eu estou olhando para melhorar o desempenho do meu site, não porque ele está executando mal, mas apenas como um exercício geral. A sugestão de costume para sites asp.net é remover viewstate sempre que possível. Eu acredito que isso pode ser feito por cada controle em uma página separada ou para toda a página.

A minha pergunta é se eu desativar o viewstate página isso vai parar o estado de visualização de controles em uma masterpage (como eu entendo o masterpage é realmente um controle na página).

Foi útil?

Solução

Sim, a página é o criador do fluxo de página. Assim, a desativação viewstate para a página leva a prestação viewstate fora do processo OnInit. A melhor pergunta seria por que desabilitar o viewstate para a página principal fazer o mesmo?

Outras dicas

Não há uma maneira fácil de reduzir todo o seu viewstate.

Passo 1. Crie uma nova classe que se parece com isso:

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

Passo 2. Adicionar uma pasta App_Browsers ao seu projeto.

Passo 3. Na pasta nova App_Browsers, adicionar um novo arquivo default.browser parecida com esta.
<browsers>
<browser refID="Default">
<controlAdapters>
<adapter controlType="System.Web.UI.Page" adapterType="[YourNamespaceGoesHere].SessionPageStateAdapter" />
</controlAdapters>
</browser>
</browsers>

Quando você executa suas páginas agora, você deve encontrar o seu tamanho viewstate caiu para alguns bytes. As interceptações classe SessionPageStateAdapter viewstate antes que seja servido para o navegador e prende-lo em no servidor no estado de sessão. O pouco de viewstate que ainda é enviada para o cliente é apenas um identificador que é usado para reconstituir o viewstate original quando a página é enviada de volta para o servidor.

Apenas uma nota rápida no lado antes de otimização do site, você tem otimizado o servidor, certificando-se todos os arquivos são compactado antes de ser enviado.

Se não for esse vai te dar um bom impulso antes mesmo de começar a mexer com a página.

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top