Manuale: Visualizzatore ViewState
La funzione "Visualizzatore ViewState" di Visual SEO Studio, documentata in dettaglio.
Visualizzatore ViewState
Dovrai usare questo strumento solo quando avrai a che fare con pagine web costruite con la vecchia tecnologia "ASP.NET WebForms".
All'epoca gli ingegneri di MS ebbero la terribile idea di mascherare la natura "stateless" del Web a un esercito di programmatori VB che non avevano idea di come funzionasse il Web, per permettere loro di creare applicazioni web in modo simile a quanto erano abituati.
Per ottenere il risultato piazzarono nelle pagine generate dal loro IDE un campo nascosto fatto più o meno così:
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwULL ...un valore testuale potenzialmente gigantesco... dtBPL7w=" />
Uno dei tanti problemi era che questo campo nascosto era il più popolato con un enorme testo codificato anche per pagine che non lo necessitavano, come la maggior parte delle pagine pubbliche di un sito web.
Il risultato fu in molti casi pagine pesanti molti MB di dati inutili.
Per quanto presto apparirono in Internet diversi visualizzatori di ViewState per pagine singole, quel che veramente mancava prima che Visual SEO Studio lo realizzasse era uno strumento capace di analizzare il ViewState di tutte le pagine pubbliche di un sito web.
Finora ci risulta essere sempre l'unico strumento in grado di farlo (vedi anche le funzioni Suggerimenti prestazioni e Filtri personalizzati, entrambe in grado di analizzare l'uso del ViewState nell'intero sito).
Che fare quando il programma ti ha aiutato a individuare parti della pagina web che usano inutilmente il ViewState?
In ASP.NET WebForm ogni singolo controllo lato server supporta l'attributo booleano EnableViewState
, che sfortunatamente ha come volare predefinito true
.
Nella nostra esperienza nelle pagine pubbliche il più comune colpevole di intasare il ViewState sono le tabelle generate lato server.
Quando capisci che un singolo controllo non necessita veramente del ViewState perché la pagina web funzioni, imposta l'attributo - o chiedi al tuo sviluppatore di farlo - a false
:
<asp:Table runat="server" EnableViewState="false" ...
Nel più dei casi sarai in gradi di impostare EnableViewState="false"
a livello di pagina:
<%@ Page EnableViewState = "false" ...
Assicurati però con il tuo sviluppatore di non impattare sul corretto funzionamento del sito quando disabiliti il ViewState a livello di pagina.
Fai riferimento alla documentazione di MS per tutto quanto riguarda il ViewState e l'attributo EnableViewState
.
Puoi apprendere di più sul Visualizzatore di ViewState leggendo il blog post che scrivemmo quando pubblicammo la funzione.
Generale
Questa semplice vista in questa scheda è concepita per mostrarti a colpo d'occhio quanto alla fin fine ti importa sapere del campo ViewState dalla pagina: se è troppo grosso e che cosa riguarda.
Se ti rendi conto non è un problema, puoi gioirne e passare ad altro. Se invece vedi che la sua dimensione è sospetta, dovrai selezionare la scheda Dettagli per approfondire.
Esempio di sito con corposo ViewState (~400KB), che ne impatta le prestazioni.
Byte
La dimensione in byte del campo ViewState.
Per ragioni tecniche è indicato come un'approssimazione, sebbene sia una stima esatta la maggior parte delle volte.
% di pagina
La percentuale della pagina costituita dal ViewState.
È il rapporto tra la dimensione in byte del ViewState e la dimensione della pagina.
ViewState (decodificato):
Il contenuto del campo ViewState, dopo una decodifica dalla sua rappresentazione Base64.
Questo in pratica ripristina i caratteri non-ASCII dalla loro codifica Base64, e null'altro. Non aspettarti di comprenderne appieno il senso, perché il campo ViewState non è stato concepito per essere leggibile dall'essere umano. Detto questo, sarai spesso in grado di comprenderne diverse parti con uno sguardo, o perlomeno di riconoscere parti del codice HTML che non dovrebbero essere rese ridondanti all'interno del campo ViewState.
Dettagli
Speriamo che il contenuto della scheda Generale ti sia stato sufficiente, ma se dovrai approfondire cosa esattamente il ViewState memorizza, un vero e proprio visualizzatore è qui a tua disposizione.
Non saremo troppo tecnici qui, per una lettura più approfondita consulta la documentazione di Microsoft.
Visualizzatore ViewState, vista ad albero nei dettagli
Colonna: Etichetta
Questa colonna mostra una vista ad albero con nodi etichettati con il tipo del dato da essi contenuti. È usata la notazione compatta.
Colonna: Tipo
Il nome completo del tipo di dato.
Colonna: Valore
Il valore contenuto nel nodo.
Tipo
Il nome completo del tipo di dato della riga selezionata nella vista ad albero.
Valore
Il valore contenuto nel nodo della riga selezionata nella vista ad albero.