Comment faire pour le cache dans ASP.NET à l'aide de Visual Basic .NET

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

Sommaire

Résumé

Cet article étape par étape décrit des méthodes pour contrôler la façon dont ASP.NET caches pages Web et des objets de données. Par la mise en cache, vous éviter de recréer des informations lorsque vous effectuez des demandes ultérieures. La mise en cache est une opération importante création hautes performances et les applications serveur évolutif. Dans la première demande de la page, vous pouvez stocker des objets de données, pages ou parties de la page dans la mémoire. Vous pouvez stocker ces éléments sur le serveur Web, sur le serveur proxy ou sur le navigateur.

Plus d'informations

ASP.NET fournit des méthodes pratiques pour contrôler la mise en cache. Vous pouvez utiliser la directive @ OutputCache pour contrôler la sortie de page mise en cache dans ASP.NET. Utilisez classe HttpCachePolicy pour stocker les objets arbitraires, telles que les ensembles de données, la mémoire de serveur. Vous pouvez stocker le cache des applications telles que le navigateur client, le serveur proxy et Microsoft Internet Information Services (IIS). En utilisant l'en-tête HTTP cache-control, vous pouvez contrôler la mise en cache.

Pour plus d'informations sur la mise en cache de sortie ASP.NET, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
308516 Comment faire pour mise en cache de page contrôle la sortie dans ASP.NET à l'aide de Visual Basic .NET

Pages ASP.NET cache

Vous pouvez mettre par à l'aide de la directive @ OutputCache , ou par programmation par le biais de code à l'aide Visual Basic .NET ou Visual .NET de Visual c#. La directive @ OutputCache contient un attribut Location . Cet attribut détermine l'emplacement de l'article mis en cache. Vous pouvez spécifier une des emplacements suivants :
  • tout - il stocke le cache de sortie dans le navigateur du client, sur le serveur proxy (ou tout autre serveur) qui font partie de la demande, ou sur le serveur où la requête est traitée. Par défaut, tout est activée.
  • client - il stocke cache de sortie dans le navigateur du client.
  • Downstream - il stocke le cache de sortie dans tous les cache-capable périphériques ne (figurant pas le serveur d'origine) qui participent à la demande.
  • serveur - il stocke le cache de sortie sur le serveur Web.
  • Aucun - cette désactive le cache de sortie.

Voici des exemples de code pour la directive @ OutputCache et le code équivalent par programmation.
  • pour stocker le cache de sortie pour une durée spécifiée

    Approche déclarative :
    <%@ OutputCache Duration="60" VaryByParam="None" %>

    Approche de programmation :
    Response.Cache.SetExpires(DateTime.Now.AddSeconds(60))
    Response.Cache.SetCacheability(HttpCacheability.Public)
  • pour stocker le cache de sortie sur le client navigateur origine de la demande

    Approche déclarative :
    <%@ OutputCache Duration="60" Location="Client" VaryByParam="None" %>

    Approche de programmation :
    Response.Cache.SetExpires(DateTime.Now.AddSeconds(60))
    Response.Cache.SetCacheability(HttpCacheability.Private)
    
  • pour stocker le cache de sortie sur les périphériques capable de cache HTTP 1.1 y compris les serveurs proxy et le client qui apportées demande

    Approche déclarative :
    <%@ OutputCache Duration="60" Location="Downstream" VaryByParam="None" %>

    Approche de programmation :
    Response.Cache.SetExpires(DateTime.Now.AddSeconds(60))
    Response.Cache.SetCacheability(HttpCacheability.Public)
    Response.Cache.SetNoServerCaching()
  • pour stocker le cache de sortie sur le serveur Web

    Approche déclarative :
    <%@ OutputCache Duration="60" Location="Server" VaryByParam="None" %>

    Approche de programmation :
    Response.Cache.SetExpires(DateTime.Now.AddSeconds(60))
    Response.Cache.SetCacheability(HttpCacheability.Server)
    
  • cache de la sortie pour chaque demande HTTP qui arrive avec une autre ville

    Approche déclarative :
    <%@ OutputCache duration="60" varybyparam="City" %>
    

    Approche de programmation :
    Response.Cache.SetExpires(DateTime.Now.AddSeconds(60))
    Response.Cache.SetCacheability(HttpCacheability.Public)
    Response.Cache.VaryByParams("City") = true
    
    Pour l'attribut VaryByCustom , l'attribut VaryByHeader et l'attribut VaryByParam dans la directive @ OutputCache , la classe HttpCachePolicy fournit la propriété VaryByHeaders et la propriété VaryByParams et la méthode SetVaryByCustom .

Désactiver le client et le proxy de mise en cache

Pour désactiver le cache de sortie pour une page Web ASP.NET à l'emplacement du client et à l'emplacement de proxy, définissez la valeur d'attribut location sur Aucun et puis définissez sa valeur VaryByParam sur Aucun dans la directive @ OutputCache . Utiliser les exemples de code suivants pour désactiver des clients et de proxy de mise en cache.
  • Approche déclarative :
    <%@ OutputCache Location="None" VaryByParam="None" %>
  • Approche de programmation :
    Response.Cache.SetCacheability(HttpCacheability.NoCache)

Cache d'objets arbitraire de mémoire de serveur

ASP.NET inclut un mécanisme de mise en cache puissant et facile à utiliser que vous pouvez utiliser pour stocker les objets nécessitent beaucoup de ressources de serveur pour créer dans la mémoire. La classe cache implémente cette méthode. Instances sont privées à chaque application et la durée de vie est liée à l'application correspondante. Pour mettre en cache les objets arbitraires dans ASP.NET en utilisant la classe de cache , procédez comme suit :
  1. Créer une nouvelle application Web ASP.NET à l'aide de Visual Basic .NET.
  2. Par défaut, WebForm1.aspx est créé.
  3. Dans l'affichage HTML du fichier WebForm1.aspx , remplacez le code existant par le code exemple suivant :
    <%@ Import Namespace="System.Data.SqlClient" %>
    <%@ Import Namespace="System.Data" %>
    <HTML>
    	<script language="vb" runat="server">
    
    		Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
    			Dim Source As DataView
    
    		'Retrieve the DataView object from the Cache class. If it does not exist, add the DataView object to the Cache class.
    
    		Source = CType(Cache("MyDataSet"), DataView)
    
    		If Source Is Nothing Then
    
    			Dim myConnection As SqlConnection = New SqlConnection("Server=ServerName; database=Pubs; user id=UID; password=PWD;")
    			Dim myCommand As SqlDataAdapter = New SqlDataAdapter("select * from Authors", myConnection)
    			Dim ds As DataSet = New DataSet()
    			myCommand.Fill(ds, "Authors")
    
    			Source = New DataView(ds.Tables("Authors"))
    			Cache("MyDataSet") = Source
    			CacheMsg.Text = "Dataset created explicitly"
    			
    		Else
    			
    			CacheMsg.Text = "Dataset retrieved from cache"
    
    		End If
    
    		' Bind the DataView object to DataGrid. 
    		MyDataGrid.DataSource = Source
    		MyDataGrid.DataBind()
    
    		End Sub
    
    	</script>
    	<body>
    		<form method="GET" runat="server" ID="Form1">
    	      <h3><font face="Verdana">Caching Data</font></h3>
    			<ASP:DataGrid id="MyDataGrid" runat="server"
    			Width="700"
    			BackColor="#ccccff"
    			BorderColor="black"
    			ShowFooter="false"
    			CellPadding=3
    			CellSpacing="0"
    			Font-Name="Verdana"
    			Font-Size="8pt"
    			HeaderStyle-BackColor="#aaaad" />
    			<p>
    			<i><asp:label id="CacheMsg" runat="server"/></i>
    	    </form>
    		</P>
    	</body>
    </HTML>
    Remarque remplacez les valeurs pour ServerName, UID et PWD dans le code exemple de l'objet SqlConnection avec votre nom du serveur SQL, code d'utilisateur et mot de passe.
  4. Dans le menu Déboguer , cliquez sur Démarrer pour exécuter l'application.

    note Lorsque vous redémarrez l'application, l'objet mis en cache est recréé.

Références

Pour plus d'informations, cliquez sur les numéros ci-dessous pour afficher les articles correspondants dans la Base de connaissances Microsoft :
234067 Comment faire pour empêcher la mise en cache dans Internet Explorer
247404 Comment faire pour modifier l'en-tête HTTP cache-control lors de l'utilisation de services Internet (IIS)
311006 Comment faire pour empêcher la mise en cache Web dans Windows 2000
247389 Services Internet (IIS): Comment faire pour désactiver la mise en cache de types MIME spécifiques
313561 Comment faire pour définir les en-têtes HTTP d'expiration de contenu dans IIS


Pour plus d'informations, reportez-vous au site de Web Microsoft suivant :
http://msdn2.microsoft.com/en-us/library/xsbfdd8c(vs.71).aspx


Propriétés

Numéro d'article: 811431 - Dernière mise à jour: jeudi 31 mai 2007 - Version: 3.6
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 Basic .NET 2003 Initiation
  • Microsoft Visual Basic .NET 2002 Initiation
Mots-clés : 
kbmt kbhowtomaster kbdatabinding kbcaching kbwebforms kbinfo KB811431 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: 811431
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