Condividi tramite


@ OutputCache

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"
   ProviderName="Provider Name"  
%>

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, vengono stabiliti criteri di scadenza per le risposte HTTP dall'oggetto e vengono memorizzati automaticamente nella cache l'output del controllo utente o della pagina.

    NotaNota

    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.

    NotaNota

    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 ("").

    NotaNota

    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.

    NotaNota

    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();
    
  • ProviderName
    Valore di stringa che identifica il provider della cache di output personalizzato da utilizzare. Per ulteriori informazioni, vedere la sezione Note di questo argomento e la voce Extensible Output Caching with ASP.NET 4 (VS 2010 and .NET 4.0 Series) sul blog di Scott Guthrie

    NotaNota

    Questo attributo è supportato solo in controlli utente (file con estensione ascx).Non è supportato per le direttive @ OutputCache che sono incluse nelle pagine ASP.NET (file .aspx).

  • 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".

    NotaNota

    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.

    NotaNota

    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.

    NotaNota

    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. In base all'impostazione predefinita, queste stringhe corrispondono al valore stringa di query inviato con attributi di 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.

    Nota di avvisoAttenzione

    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.

    NotaNota

    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 tale proprietà non viene impostata su true, il comportamento predefinito prevede la memorizzazione nella cache di una versione dell'output del controllo utente per ogni pagina contenente quel 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

Riferimenti

Sintassi della direttiva template di testo

Concetti

Cenni preliminari sull'inserimento nella cache in ASP.NET

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