IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

FAQ ASP.NET/VB.NET

FAQ ASP.NET/VB.NETConsultez toutes les FAQ

Nombre d'auteurs : 38, nombre de questions : 369, dernière mise à jour : 16 juin 2021 

 
OuvrirSommaireGestion de l'étatCache

Le cache est un moyen de stocker en mémoire des informations qu'il est couteux de lire ou de créer, par exemple des valeurs lues dans la base de données.

L'utilisation du cache est une bonne démarche pour améliorer les performances de votre site mais impose des précautions :

  • sur la capacité mémoire du serveur (limitée)
  • sur les répartitions, en cas de fermes de serveur
  • sur la pertinence de la donnée (reflete-t-elle la valeur de la source de données ?)
Créé le 15 décembre 2009  par nico-pyright(c)

On peut avoir 3 types de cache dans une application ASP.NET :

  • Le cache au niveau des pages (Output Caching)
  • Le cache partiel (Partial-Page Output Caching)
  • Le cache de données

L'Output Caching permet de mettre en cache la page, on l'utilise avec la directive :

 
Sélectionnez
<%@OutputCache Duration="60" VaryByParam="none" %>

Le cache partiel permet de mettre en cache des parties de la pages. Cela peut-être utile si des bouts de la page ne sont pas du tout dynamiques.
On peut ainsi mettre la directive du dessus dans les UserControls.

Enfin le cache de données est celui qu'on utilise de manière programmative. Voir Comment utiliser le cache ASP.NET.

Créé le 15 décembre 2009  par nico-pyright(c)

Le cache s'utilise de la même façon que les autres systèmes de gestion de l'état, comme l'objet d'application ou l'objet de session :

 
Sélectionnez
Cache("MaValeur") = LireValeurDepuisLaBD()
Dim result As Integer = CInt(Cache("Resultat"))

Note : en général on teste si la valeur existe bien dans le cache avant d'y accéder et si elle n'existe pas, on la renseigne :

 
Sélectionnez
Dim result As Integer
If Cache("Resultat") IsNot Nothing Then
	result = CInt(Cache("Resultat"))
Else
	result = LireValeurDepuisSourceDeDonnees()
	Cache("Resultat") = result
End If
Créé le 15 décembre 2009  par nico-pyright(c)

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2007 Dotnet Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.