Comment faire pour sortie de pages contrôle de mise en cache dans ASP.NET à l'aide de Visual C# .NET

Traductions disponibles Traductions disponibles
Numéro d'article: 308375 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Sommaire

Résumé

Cet article explique comment utiliser la directive @ OutputCache pour contrôler la sortie de page mise en cache dans ASP.NET avec Visual C# .NET. Vous pouvez utiliser cette technique pour mettre en cache pages accès fréquemment votre site, ce qui peuvent augmenter considérablement le débit de votre serveur Web. Le débit est souvent mesuré en demandes par seconde. Bien que l'exemple de code dans cet article montre comment utiliser les durée et les attributs VaryByParam , la inclut également une brève description des autres méthodes que vous pouvez utiliser avec la directive @ OutputCache .

Remarque : il n'est pas le but de cet article pour décrire tous les attributs de directive @ OutputCache et leur possible utilise dans les détails. Pour plus d'informations, voir la rubrique pour les References de section.


Configuration requise

  • Microsoft Windows 2000 ou Windows XP
  • Microsoft .NET framework
  • Microsoft Internet Information Server (IIS)
  • Microsoft ASP.NET

Introduction à la @ OutputCache directive

Pour utiliser la directive @ OutputCache pour contrôler la sortie de page mise en cache, vous ajoutez simplement la directive vers le haut de la page. La méthode Page.InitOutputCache traduit la directive HttpCachePolicy les méthodes de classe.

La directive @ OutputCache inclut les attributs et les paramètres suivants :
  • durée : Cet attribut spécifie la durée pendant laquelle un article est contenue dans le cache. La valeur de durée est répertoriée dans secondes.
  • VaryByParam : Cet attribut détermine les entrées de cache par Get ou Post paramètres. Par exemple, si une variable QueryString nommée testVal est définie pour l'attribut VaryByParam , chaque demande de page qui contient une valeur différente pour testVal est mises en cache dans une page séparée. Le code suivant illustre la syntaxe de l'attribut VaryByParam :
    <%@ OutputCache Duration="Seconds" VaryByParam="testVal"%>
    						
    Remarque : vous pouvez spécifier un astérisque afin que tous les différentes versions de l'article sont mises en cache. En outre, vous pouvez spécifier « aucun » si seule une version d'un élément de mise en cache existe.
  • emplacement : Cet attribut détermine où l'article doit être mis en cache. Vous pouvez spécifier les emplacements suivants :
    • tout
    • client
    • en aval
    • serveur
    • Aucun

    Le code suivant illustre la syntaxe de l'attribut location :
    <%@ OutputCache Duration="Seconds" Location="Client" %>
    					
  • VaryByCustom : cet attribut contient le paramètre navigateur , qui signifie qu'une instance différente d'un élément est mis en cache pour chaque version de navigateur demande par défaut. Par exemple, les deux Microsoft Internet Explorer 5 et Internet Explorer 5.5 demandent l'élément. Lorsque VaryByCustom est définie pour le navigateur , une entrée de cache existe pour chaque version du navigateur. Vous ne pouvez pas fournir une chaîne pour contrôler la mise en cache pour les autres scénarios personnalisés. La chaîne n'a pas n'importe quel sens à moins que vous fournissez le code pour remplacer la méthode HttpApplication.GetVaryByCustomString dans le fichier global.asax.

    Le code suivant illustre la syntaxe de l'attribut VaryByCustom :
    <%@ OutputCache Duration="Seconds" VaryByCustom="string" %>
    					
  • VaryByHeader : Cet attribut vous permet de spécifier une valeur d'en-tête HTTP particulière comme critère pour déterminer les entrées de cache différent. Le code suivant illustre la syntaxe de l'attribut VaryByHeader :
    <%@ OutputCache Duration="60" VaryByHeader="Accept-Language" %>
    					

Étapes pour créer l'exemple @ OutputCache durée

Les étapes suivantes montrent comment utiliser l'attribut de durée pour la sortie page mise en cache pour spécifier combien de temps pour mettre un élément en cache.
  1. Créez un nouveau projet de Visual Basic ASP.NET Web application comme suit :
    1. Ouvrez Visual Studio .NET.
    2. Dans le menu Fichier , pointez sur Nouveau , puis cliquez sur projet .
    3. Dans la boîte de dialogue Nouveau projet , cliquez sur projets Visual C# sous types de projet , puis cliquez sur Application Web ASP.NET sous modèles . Dans la zone de texte Nom , tapez OutputCacheDemo et puis cliquez sur OK .
  2. Créer une nouvelle page .aspx dans Visual Studio .NET comme suit :
    1. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le n?ud de projet, cliquez sur Ajouter et puis cliquez sur Ajouter un formulaire Web .
    2. Dans la zone de texte Nom , tapez OutputCacheDuration.aspx et puis cliquez sur Ouvrir .
  3. Supprimer le code par défaut qui Visual Studio .NET ajoute à la page.
  4. Sélectionnez le code suivant, cliquez avec le bouton droit sur le code, puis cliquez sur Copier . Cliquez dans Visual Studio .NET, sur Coller au format HTML dans le modifier menu pour coller le code dans la page .aspx :
    <%@ OutputCache Duration="20" VaryByParam="none"%>
    <HTML>
       <HEAD>
       <script language="C#" runat="server">
       void Page_Load(object sender, EventArgs e) 
       {	
          Label1.Text = "Time: " + DateTime.Now.TimeOfDay.ToString();
       }
       </script>
       </HEAD>
       <body>
          <STRONG>@ OutputCache Duration Sample</STRONG>
          <hr>
          <br>
          <asp:Label id="Label1" runat="server">Label</asp:Label>
          <br>
       </body>
    </HTML>
    					
  5. Dans le menu Fichier , cliquez sur OutputCacheDuration.aspx enregistrer pour enregistrer la page.
  6. Dans le générer menu dans l'environnement de développement intégré (IDE), cliquez sur Créer .
  7. Pour exécuter l'exemple, cliquez avec le bouton droit sur OutputCacheDuration.aspx dans l'Explorateur de solutions, puis cliquez sur Afficher dans le navigateur .
  8. Une fois que la page s'affiche dans le navigateur, prenez note de l'heure qui s'affiche dans l'étiquette.
  9. Actualisez la page dans le navigateur. Notez que l'heure est la même telle qu'elle était définie précédemment. Si vous actualisez la page après expiration de la valeur de durée de 20 secondes, une version nouvelle mise en cache de la page s'affiche.

    Remarque : Si vous visualisez la page dans un navigateur externe, vous pouvez appuyez sur la touche F5 pour actualiser la page. Si vous visualisez la page dans le navigateur interne IDE Visual Studio .NET, vous pouvez cliquez avec le bouton droit sur la page et puis cliquez sur Actualiser pour actualiser la page.

Étapes pour créer l'exemple @ OutputCache VaryByParam

Les étapes suivantes montrent comment utiliser l'attribut VaryByParam pour sortie de page mise en cache pour autoriser pour différentes versions mis en cache d'une page d'exister en fonction de la valeur d'un de ses valeurs variables QueryString .
  1. Créer une nouvelle page .aspx dans Visual Studio .NET comme suit :
    1. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le n?ud de projet, cliquez sur Ajouter et puis cliquez sur Ajouter un formulaire Web .
    2. Dans la zone de texte Nom , tapez OutputCacheVaryByParam.aspx et puis cliquez sur Ouvrir .
  2. Supprimer le code par défaut qui Visual Studio .NET ajoute à la page par défaut.
  3. Sélectionnez le code suivant, cliquez avec le bouton droit sur le code, puis cliquez sur Copier . Cliquez dans Visual Studio .NET, sur Coller au format HTML dans le modifier menu pour coller le code dans la page .aspx :
    <%@ OutputCache Duration="20" VaryByParam="testVal"%>
    <HTML>
       <HEAD>
          <script language="C#" runat="server">
       void Page_Load(object sender, EventArgs e) 
       {	
          Label1.Text = "Time: " + DateTime.Now.TimeOfDay.ToString();
       }
       </script>
       </HEAD>
       <body>
          <P>
             <STRONG>@ OutputCache VaryByParam Sample</STRONG>
          </P>
          <P>
             <hr>
          </P>
          <P>
             <br>
             <asp:Label id="Label1" runat="server"></asp:Label>
             <br>
             <hr>
             <a href=http://yourservername/OutputCacheDemo/OutputCacheVaryByParam.aspx?testVal=123">testVal(123)</a>
             <br>
             <a href=http://yourservername/OutputCacheDemo/OutputCacheVaryByParam.aspx?testVal=345">testVal(345)</a>
          </P>
       </body>
    </HTML>
    						
    Remarque : vous devez modifier les deux liens hypertexte dans le code précédent pour refléter le nom de votre serveur Web. En outre, vous pourrez remarquer que l'attribut VaryByParam est défini à varier, selon la valeur de la variable QueryString testVal . Ainsi, la page de sortie à mettre en cache pour chaque instance dans laquelle la valeur variable QueryString pour testVal est identique.
  4. Dans le menu Fichier , cliquez sur OutputCacheVaryByParam.aspx enregistrer pour enregistrer la page.
  5. Dans le menu Générer dans l'IDE, cliquez sur Créer .
  6. Pour exécuter l'exemple, cliquez avec le bouton droit sur OutputCacheVaryByParam.aspx dans l'Explorateur de solutions, puis cliquez sur Afficher dans le navigateur .
  7. Une fois la page apparaît dans le navigateur, cliquez sur testVal(123) . Ainsi, le navigateur pour Parcourir vers la page, mais avec QueryString variable testVal défini sur « 123 » . Prenez note de l'heure qui s'affiche.
  8. Cliquez à nouveau sur testVal(123) . Notez que l'heure est la même telle qu'elle était définie précédemment. La sortie de la page a mis en été cache en fonction de la valeur variable testVal .
  9. Cliquez sur testVal(345) . Notez qu'une nouvelle heure s'affiche à la page.
  10. Cliquez à nouveau sur testVal(345) . Notez que la sortie de page précédente est mis en cache et affichée dans le navigateur.
  11. Cliquez sur testVal(123) pour revenir à la première instance. Remarquez que versions de cache de sortie autre page apparaissent, selon la valeur variable QueryString fournie.

Résolution des problèmes

  • Lorsque vous utilisez VaryByParam , sachez qui passe à cas résultat la variable QueryString entrées de cache supplémentaires.
  • Gardez à l'esprit que la durée est spécifié en secondes.
  • Lorsque vous utilisez VaryByCustom et remplacer la méthode HttpApplication.GetVaryByCustomString dans le fichier global.asax, le paramètre par défaut d'explorateur est utilisé si aucune correspondance n'est trouvé pour la chaîne personnalisée est fournie avec l'attribut.

Références

Pour plus d'informations sur la mise en cache de sortie de page, reportez-vous aux sites Web Microsoft suivants :
Page GotDotNet sortie mise en cache didacticiel de démarrage rapide
Kit de développement Microsoft .NET framework logiciel (SDK)
http://msdn2.microsoft.com/en-us/library/ms950382.aspx

Mise en cache de pages ASP.NET
http://msdn2.microsoft.com/en-us/library/xsbfdd8c(vs.71).aspx

@ OutputCache
http://msdn2.microsoft.com/en-us/library/hdxfb6cy(vs.71).aspx

Propriétés

Numéro d'article: 308375 - Dernière mise à jour: jeudi 31 mai 2007 - Version: 7.9
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft ASP.NET 1.1
  • Microsoft ASP.NET 1.0
  • Microsoft Visual C# .NET 2003 Initiation
  • Microsoft Visual C# .NET 2002 Initiation
Mots-clés : 
kbmt kbcaching kbhowtomaster kbio KB308375 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 308375
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com