@ OutputCache
Aggiornamento: novembre 2007
Controlla in modo dichiarativo i criteri di inserimento nella cache di output di una pagina ASP.NET o di un controllo utente contenuto in una pagina. Per ulteriori informazioni sulla cache di output, vedere Memorizzazione nella cache ASP.NET.
<%@ OutputCache Duration="#ofseconds"
Location="Any | Client | Downstream | Server | None |
ServerAndClient "
Shared="True | False"
VaryByControl="controlname"
VaryByCustom="browser | customstring"
VaryByHeader="headers"
VaryByParam="parametername"
VaryByContentEncoding="encodings"
CacheProfile="cache profile name | ''"
NoStore="true | false"
SqlDependency="database/table name pair | CommandNotification"
%>
Attributi
Duration
Tempo, in secondi, per la memorizzazione della pagina o del controllo utente nella cache. Impostando questo attributo nella pagina o in un controllo utente, viene stabilito un criterio di scadenza per le risposte HTTP dall'oggetto e viene memorizzato automaticamente nella cache l'output del controllo utente o della pagina.Nota
Questo attributo è obbligatorio. Se non viene incluso, si verifica un errore di parser.
Location
Uno dei valori di enumerazione di OutputCacheLocation. L'impostazione predefinita è Any.Nota
Questo attributo non è supportato per le direttive @ OutputCache incluse nei controlli utente (file ascx).
CacheProfile
Nome delle impostazioni della cache da associare alla pagina. Si tratta di un attributo facoltativo la cui impostazione predefinita è una stringa vuota ("").Nota
Questo attributo non è supportato per le direttive @ OutputCache incluse nei controlli utente (file ascx). Quando specificato in una pagina, il valore deve corrispondere al nome di una delle voci disponibili nell'elemento outputCacheProfiles all'interno della sezione outputCacheSettings. Se il nome non corrisponde a una voce di profilo, viene generata un'eccezione.
NoStore
Valore booleano che determina se impedire l'archiviazione secondaria delle informazioni riservate.Nota
Questo attributo non è supportato per le direttive @ OutputCache incluse nei controlli utente (file ascx). L'impostazione di questo attributo su true equivale all'esecuzione del seguente codice durante la richiesta:
Response.Cache.SetNoStore();
Shared
Valore booleano che determina se è possibile condividere l'output del controllo utente in più pagine. L'impostazione predefinita è false. Per ulteriori informazioni, vedere la sezione "Note".Nota
Questo attributo non è supportato per le direttive @ OutputCache incluse nelle pagine ASP.NET (file aspx).
SqlDependency
Valore stringa che identifica un insieme di coppie di nomi di tabella e di database da cui dipende la cache di output di una pagina o di un controllo. La classe SqlCacheDependency monitora la tabella di un database da cui dipende la cache di output, in modo che all'aggiornamento degli elementi della tabella essi vengano rimossi dalla cache quando si utilizza il polling basato su tabella. Quando si utilizzano le notifiche (in Microsoft SQL Server 2005) con il valore CommandNotification, viene utilizzata una classe SqlDependency per registrare notifiche di query con il server SQL Server 2005.Nota
Il valore CommandNotification dell'attributo SqlDependency è valido solo nelle pagine Web (aspx). I controlli utente possono utilizzare solo il polling basato su tabella con la direttiva @ OutputCache.
VaryByCustom
Testo che rappresenta requisiti di memorizzazione dell'output nella cache personalizzati. Se a questo attributo viene assegnato il valore browser, la cache viene modificata in base alle informazioni sulla versione e sul nome del browser. Se viene immessa una stringa personalizzata, è necessario eseguire l'override del metodo GetVaryByCustomString nel file Global.asax dell'applicazione.VaryByHeader
Elenco di intestazioni HTTP separate da punto e virgola, utilizzate per variare la cache di output. Quando questo attributo è impostato su più intestazioni, la cache di output contiene una versione differente del documento richiesto per ciascuna combinazione delle intestazioni specificate.Nota
L'impostazione dell'attributo VaryByHeader consente di attivare la memorizzazione di elementi in tutte le cache HTTP versione 1.1 e non solo nella cache ASP.NET. Questo attributo non è supportato per le direttive @ OutputCache nei controlli utente.
VaryByParam
Elenco di stringhe separate da punto e virgola (;) utilizzato per variare la cache di output. Per impostazione predefinita, queste stringhe corrispondono al valore di una stringa di query inviata con gli attributi del metodo GET oppure a un parametro inviato utilizzando il metodo POST. Quando questo attributo è impostato su più parametri, la cache di output contiene una versione differente del documento richiesto per ciascuna combinazione dei parametri specificati. Tra i valori possibili sono inclusi none, un asterisco (*) e qualsiasi stringa di query valida o nome di parametro POST.Attenzione: Questo attributo o l'attributo VaryByControl è obbligatorio se si utilizza la direttiva @ OutputCache nelle pagine ASP.NET e nei controlli utente. Se non viene incluso, si verifica un errore di parser. Se non si desidera specificare un parametro per variare il contenuto memorizzato nella cache, impostare il valore su none. Se si desidera variare la cache di output per tutti i valori dei parametri, impostare l'attributo su un asterisco (*).
VaryByControl
Elenco di stringhe separate da punto e virgola utilizzato per variare la cache di output. Queste stringhe rappresentano i valori della proprietà ID dei controlli server ASP.NET dichiarati nel controllo utente. Per ulteriori informazioni, vedere Memorizzazione nella cache di parti di una pagina ASP.NET.Nota
Questo attributo o l'attributo VaryByParam è obbligatorio se si utilizza la direttiva @ OutputCache nelle pagine ASP.NET e nei controlli utente.
VaryByContentEncodings
Elenco di stringhe separate da punto e virgola utilizzate per variare la cache di output. L'attributo VaryByContentEncodings è utilizzato con l'intestazione Accept-Encoding per determinare il modo in cui alle risposte inserite nella cache vengono assegnate le differenti codifiche del contenuto. Per ulteriori informazioni su come specificare l'intestazione Accept-Encoding, vedere la sezione 14.3 della specifica Hypertext Transfer Protocol -- HTTP/1.1 (informazioni in lingua inglese).
Note
L'impostazione dei valori per la cache di output della pagina equivale alla modifica dei metodi SetExpires e SetCacheability mediante la proprietà Cache.
Se per visualizzare una pagina Web Form è necessaria un'autorizzazione, nella cache di output l'intestazione HTTP Cache-Control viene impostata su private. Per ulteriori informazioni su tutti questi argomenti, vedere Memorizzazione nella cache di pagine ASP.NET.
Se si imposta l'attributo Shared su true, è possibile accedere all'output del controllo utente memorizzato nella cache da più pagine Web Form. Se l'impostazione non è true, il comportamento predefinito consiste nella memorizzazione nella cache di una sola versione dell'output del controllo utente per ogni pagina contenente il controllo utente. È possibile risparmiare un quantità significativa di memoria attivando l'attributo Shared. Per ulteriori informazioni, vedere Memorizzazione nella cache di parti di una pagina ASP.NET.
Esempio
Nell'esempio di codice riportato di seguito viene illustrato come impostare la durata della memorizzazione nella cache di output di una pagina o un controllo utente.
<%@ OutputCache Duration="100" VaryByParam="none" %>
Nel successivo esempio di codice viene illustrato come fare in modo che nella cache di output venga memorizzata una pagina o un controllo utente in base ai parametri di form location e count da un metodo POST di form o da una stringa di query. Ciascuna richiesta HTTP che arriva con un parametro location o count (o entrambi) diverso viene memorizzata nella cache per dieci secondi. Le successive richieste con gli stessi valori dei parametri vengono soddisfatte dalla cache fino alla scadenza della voce.
<%@ OutputCache Duration="10" VaryByParam="location;count" %>
Vedere anche
Concetti
Memorizzazione nella cache di pagine ASP.NET
Memorizzazione nella cache di parti di una pagina ASP.NET
Cenni preliminari sulla sintassi delle pagine Web ASP.NET