Condividi tramite


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

  1. 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.

  2. 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

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

  2. 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 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 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

Memorizzazione nella cache di più versioni di una pagina