Procedure: memorizzare versioni cache di una pagina utilizzando i parametri
Aggiornamento: novembre 2007
Nelle situazioni in cui si desidera memorizzare nella cache una pagina, talvolta accade che la pagina generi un output diverso, basato sul valore di un parametro della stringa di query o sui valori inviati con la pagina durante il postback. Se, ad esempio, si dispone di una pagina in cui sono visualizzate le posizioni degli archivi basati sullo stato di un utente, è possibile che la pagina accetti un valore della stringa di query "state" che genera una versione diversa della pagina per ogni stato.
È possibile memorizzare nella cache più versioni delle risposte della pagina basate sui parametri inviati come valori della stringa di query o come valori POST di un form.
Nota: |
---|
In ASP.NET i valori della stringa di query o POST di un form con coppie di chiave/valore identiche vengono considerati uguali ai fini della memorizzazione nella cache, indipendentemente dall'ordine in cui i parametri vengono passati. Tuttavia, sempre ai fini della memorizzazione nella cache, nei nomi dei parametri viene rilevata la distinzione tra maiuscole e minuscole e in ASP.NET vengono memorizzate nella cache versioni diverse di una pagina per i valori e i nomi di parametro in lettere maiuscole e minuscole. |
Per memorizzare nella cache più versioni dell'output della pagina in modo dichiarativo mediante i parametri
Nella pagina ASP.NET includere una direttiva @ OutputCache con un attributo Duration Tale attributo è obbligatorio e deve essere impostato su un numero intero maggiore di zero.
Nella direttiva @ OutputCache includere l'attributo VaryByParam e impostarne il valore sul nome del parametro della stringa di query o POST di un form in base al quale si desidera variare la pagina.
Nell'esempio di codice riportato di seguito la pagina viene memorizzata nella cache per 60 secondi e viene specificato che le diverse versioni dell'output della pagina verranno memorizzate nella cache in base al parametro POST di un form o al valore della stringa di query City.
<%@ OutputCache Duration="60" VaryByParam="City" %>
Nota: Se si desidera variare la cache di output in base a più parametri, includere un elenco di nomi di parametri separato da punti e virgola (;). Se si desidera variare la cache in base ai valori di tutti i parametri, impostare l'attributo VaryByParam su asterisco (*). Nell'esempio di codice riportato di seguito viene illustrata la variazione dell'output della pagina in base ai parametri City e ZipCode.
Per memorizzare nella cache più versioni dell'output della pagina a livello di codice mediante i parametri
Nell'evento Page_Load della pagina chiamare i metodi SetCacheability e SetExpires sulla proprietà Cache dell'oggetto Response.
Specificare il nome del parametro come argomento della proprietà VaryByParams dell'oggetto Response e impostare la proprietà su true.
Nell'esempio di codice riportato di seguito viene illustrato come memorizzare nella cache più versioni di una pagina quando le richieste arrivano al server con diversi valori del parametro Zip.
Response.Cache.SetExpires(DateTime.Now.AddMinutes(1.0)); Response.Cache.SetCacheability(HttpCacheability.Public); Response.Cache.SetValidUntilExpires(true); Response.Cache.VaryByParams["Zip"] = true;
Response.Cache.SetExpires(DateTime.Now.AddMinutes(1.0)) Response.Cache.SetCacheability(HttpCacheability.Public) Response.Cache.SetValidUntilExpires(True) Response.Cache.VaryByParams("Zip") = True
Nota: Per variare il contenuto memorizzato nella cache in base a più parametri, impostare la proprietà VaryByParams più volte. Se si desidera variare il contenuto inserito nella cache in base ai valori di tutte le intestazioni, impostare l'attributo VaryByHeader su asterisco (*). Nell'esempio di codice riportato di seguito viene illustrata la variazione dell'output della pagina in base ai parametri City e Zip.
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 nella cache versioni di una pagina utilizzando le intestazioni HTTP
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