Condividi tramite


Procedure: memorizzare nella cache versioni di una pagina utilizzando le intestazioni HTTP

Aggiornamento: novembre 2007

ASP.NET consente di inserire nella cache più versioni di una pagina sulla base del valore di un'intestazione HTTP specificata. Quando la pagina viene richiesta, è possibile specificare l'inserimento nella cache in base a una sola intestazione, a più intestazioni o a tutte le intestazioni passate all'applicazione.

Per inserire nella cache più versioni della pagina in modo dichiarativo in base ai valori delle intestazioni HTTP

  1. Nella pagina ASP.NET includere una direttiva @ OutputCache con gli attributi Duration e VaryByParam oppure VaryByControl richiesti. L'attributo Duration deve essere impostato su un numero intero maggiore di zero. Per eseguire l'inserimento nella cache solo in base ai valori dell'intestazione HTTP, è necessario impostare l'attributo VaryByParam su "None".

  2. Nella direttiva @ OutputCache includere l'attributo VaryByHeader e impostare il rispettivo valore sul nome dell'intestazione HTTP in base alla quale si desidera variare il contenuto della cache.

    Nell'esempio riportato di seguito la pagina viene inserita nella cache per 60 secondi e viene impostato l'inserimento nella cache delle versioni di una pagina in base al valore passato con l'intestazione HTTP Accept-Language:

    <%@ OutputCache Duration="60" VaryByParam="None" VaryByHeader="Accept-Language" %>
    
    Nota:

    Se si desidera variare il contenuto inserito nella cache in base a più intestazioni, includere un elenco di nomi di intestazioni separato da punto e virgola (;). Se si desidera variare il contenuto inserito nella cache in base ai valori di tutte le intestazioni, impostare l'attributo VaryByHeader su asterisco (*).

Per inserire nella cache più versioni di una pagina a livello di codice in base ai valori di un'intestazione HTTP

  1. Nel metodo Page_Load della pagina chiamare i metodi SetCacheability e SetExpires sulla proprietà Cache dell'oggetto Response della pagina.

  2. Impostare il valore relativo all'intestazione HTTP nella proprietà VaryByHeaders su true.

    Nell'esempio di codice riportato di seguito viene illustrato come inserire nella cache più versioni di una pagina per un solo minuto per le richieste con valori diversi dell'intestazione HTTP Accept-Language.

    protected void Page_Load(object sender, EventArgs e)
    {
        Response.Cache.SetExpires(DateTime.Now.AddMinutes(1d));
        Response.Cache.SetCacheability(HttpCacheability.Public);
        Response.Cache.SetValidUntilExpires(true);
        Response.Cache.VaryByHeaders["Accept-Language"] = true;
    }
    
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Response.Cache.SetExpires(DateTime.Now.AddMinutes(1.0))
        Response.Cache.SetCacheability(HttpCacheability.Public)
        Response.Cache.SetValidUntilExpires(True)
        Response.Cache.VaryByHeaders("Accept-Language") = true
    End Sub
    
    Nota:

    Per variare il contenuto inserito nella cache in base a più intestazioni, è necessario impostare più valori nella proprietà VaryByHeaders. Per variare il contenuto in base a tutte le intestazioni, impostare VaryByHeaders["VaryByUnspecifiedParameters"] su true.

Vedere anche

Attività

Procedura: impostare il valore di memorizzazione nella cache di una pagina ASP.NET in modo dichiarativo

Procedura: impostare il valore di memorizzazione nella cache di una pagina a livello di codice

Procedura: memorizzare nella cache versioni di una pagina tramite un browser richiedente

Procedure: memorizzare versioni cache di una pagina utilizzando i parametri

Procedura: memorizzare nella cache versioni di una pagina tramite stringhe personalizzate

Concetti

Memorizzazione nella cache di pagine ASP.NET

Impostazione del valore di memorizzazione nella cache di una pagina

Memorizzazione nella cache di più versioni di una pagina