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
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".
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
Nel metodo Page_Load della pagina chiamare i metodi SetCacheability e SetExpires sulla proprietà Cache dell'oggetto Response della pagina.
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 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