Migliora notevolmente i tempi di risposta di ASP.NET riducendo il carico utile restituito ai client Web. Le applicazioni ASP.NET devono fare i conti con lo stato di visualizzazione che diventa un sovraccarico delle prestazioni. E, NCache ti aiuta a cache Visualizza stato sui server Web e invia un payload molto più piccolo al browser dell'utente contenente solo un token univoco per questo ViewState.
View State è una stringa di testo crittografata contenente lo stato dei controlli e dei widget dei moduli Web e viene inviata al browser dell'utente per preservare questo stato nei post-back. Per i moduli con molti controlli, controllo DataGrid o altri controlli complessi, lo stato di visualizzazione può diventare piuttosto grande. Ecco alcuni motivi per cui dovresti considerare di memorizzare nella cache lo stato di visualizzazione.
View State è incluso nella risposta di una richiesta web come un campo modulo nascosto chiamato __VIEWSTATE. In tutte le visite alla pagina durante la fase di salvataggio dello stato di visualizzazione, la classe Page raccoglie lo stato di visualizzazione collettiva per tutti i controlli nella relativa gerarchia di controlli e serializza lo stato in una stringa con codifica base 64. Di seguito è riportato un esempio di uno stato di visualizzazione.
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUJNzg0MDMxMDA1D2QWAmYPZBYCZg9kFgQCAQ9 kFgICBQ9kFgJmD2QWAgIBDxYCHhNQcm...ZpZ2F0aW9uTWVudQ8PZAUK QWxsIGluIE9uZWQiMPVaPthHdSA3rH8zgoNOvWxd4w=="/>
Quando NCache memorizza nella cache questo stato di visualizzazione, sostituisce i campi "id" e "value" con i propri dati. Eccone un esempio.
<input type="hidden" name="__NCPVIEWSTATE" id="__NCPVIEWSTATE" value="vs:cf8c8d3927ad4c1a84da7f891bb89185" /> <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="" />
Nota come viene conservato il campo nascosto originale "__VIEWSTATE" in modo che tutto funzioni come se non ci fosse lo stato di visualizzazione. Ma ha inserito il proprio campo "__NCPVIEWSTATE" che leggerà quando una richiesta di post-back arriva dall'utente al server web. NCache usa il "valore" come chiave per recuperare lo stato di visualizzazione originale corrispondente dalla cache in memoria e lo serve alla pagina ASP.NET in modo che possa popolare il modulo Web con i dati dallo stato di visualizzazione.
Inoltre, poiché la cache in memoria è distribuita e sincronizzata su tutti i server WFE, anche se la richiesta di post-back passa a un server WFE diverso nella farm rispetto al server originale in cui è stato creato lo stato di visualizzazione, NCache è in grado di trovare il valore View State nella cache.