Partager via


Comment : mettre en cache des versions d'une page à l'aide du navigateur qui effectue la demande

Mise à jour : novembre 2007

Si votre application Web contient une page qui crée une sortie différente selon le type du navigateur qui effectue la demande, vous pouvez mettre en cache plusieurs versions de la sortie de page en fonction de la version principale du navigateur qui demande la page. Par exemple, lorsqu'un navigateur Internet Explorer 6 demande une page, une version de la page est mise en cache. Quand un navigateur Netscape Navigator, une autre version de Microsoft Internet Explorer ou tout autre navigateur demande la page, une autre version de la page est ajoutée au cache de sortie.

Remarque :

Les informations sur la version principale et le type de navigateur sont passées via la propriété MajorVersion de l'objet HttpBrowserCapabilities dans la demande actuelle. Pour plus d'informations, consultez Comment : détecter les types de navigateurs dans les pages Web ASP.NET.

Pour mettre en cache plusieurs versions d'une page de façon déclarative en fonction du type du navigateur

  1. Dans la page ASP.NET, incluez une directive @ OutputCache avec les attributs Duration et VaryByParam ou VaryByControl requis. L'attribut Duration doit avoir une valeur de type entier supérieure à zéro. Si vous souhaitez mettre en cache une version de page par type de navigateur uniquement, affectez à l'attribut VaryByParam la valeur "None".

  2. Dans la directive @ OutputCache, incluez l'attribut VaryByCustom et affectez-lui la valeur "browser".

    Dans l'exemple suivant, la page est mise en cache pendant 10 secondes. La sortie varie selon le type de navigateur.

    <%@ OutputCache Duration="10" VaryByParam="None" VaryByCustom="browser" %>
    

Pour mettre en cache plusieurs versions d'une page par programme en fonction du type du navigateur

  1. Dans le code de la page, appelez les méthodes SetExpires et SetCacheability sur la propriété Cache de la propriété Response de la page.

  2. Appelez la méthode SetVaryByCustom, en passant la valeur "browser" dans le paramètre custom.

    L'exemple de code suivant montre comment mettre en cache plusieurs versions d'une page pendant une minute. La sortie varie selon le type de navigateur qui en fait la demande.

    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.SetVaryByCustom("browser");
    }
    
    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.SetVaryByCustom("browser")
    End Sub
    

Voir aussi

Tâches

Comment : définir la capacité de mise en cache d'une page ASP.NET de manière déclarative

Comment : définir la capacité de mise en cache d'une page par programme

Comment : mettre en cache des versions d'une page à l'aide de paramètres

Comment : mettre en cache des versions d'une page à l'aide d'en-têtes HTTP

Comment : mettre en cache des versions d'une page à l'aide de chaînes personnalisées

Concepts

Mise en cache de pages ASP.NET

Définition de la capacité d'une page à être mise en cache

Mise en cache de plusieurs versions d'une page