Domanda

Sto cercando di migliorare le prestazioni del mio sito, non perché funziona male, ma solo come esercizio generale. Il solito suggerimento per i siti asp.net è di rimuovere viewstate ove possibile. Credo che ciò possa essere fatto da ciascun controllo su una pagina separatamente o per l'intera pagina.

La mia domanda è se disabilito il viewstate della pagina questo fermerà il viewstate dei controlli su una pagina master (come ho capito la pagina master è in realtà un controllo sulla pagina).

È stato utile?

Soluzione

Sì, la pagina è il creatore del flusso di pagine. Pertanto, la disabilitazione di viewstate per la pagina elimina il rendering viewstate dal processo OnInit. Una domanda migliore sarebbe perché la disabilitazione del viewstate per la pagina principale fa lo stesso?

Altri suggerimenti

C'è un modo semplice per ridurre tutto il tuo stato.

Passaggio 1. Crea una nuova classe simile a questa:

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

Passaggio 2. Aggiungi una App_Browsers cartella al tuo progetto.

Passaggio 3. Nella nuova cartella default.browser, aggiungi un nuovo <browsers>
<browser refID="Default">
<controlAdapters>
<adapter controlType="System.Web.UI.Page" adapterType="[YourNamespaceGoesHere].SessionPageStateAdapter" />
</controlAdapters>
</browser>
</browsers>
file simile al seguente.
<=>

Quando esegui le tue pagine ora, dovresti trovare che la dimensione del tuo stato è scesa a pochi byte. La classe SessionPageStateAdapter intercetta viewstate prima di essere servita al browser e lo mantiene sul server nello stato Session. Il bit di viewstate che viene ancora inviato al client è solo un identificatore che viene utilizzato per ricostituire il viewstate originale quando la pagina viene postata nuovamente sul server.

Potresti trovare utile questo articolo:
http://msdn.microsoft.com/en-us/library/ms972976. aspx

Solo una breve nota a lato prima di ottimizzare il sito, hai ottimizzato il server assicurandoti che tutti i file siano compressi con il gzip prima di essere inviati.

In caso contrario, questo ti darà una bella spinta prima ancora di iniziare a armeggiare con la pagina.

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top