Lors de la création d'une application ASP.NET MVC 3.0, je peux inclure un attribut de sortieCache sur une action et définir la durée du cache persistera. Après cette durée, toute activité entraînant l'incendie entraînera ce résultat mis en cache et rafraîchis. P>
Ma question est ... Cette sortie Cached Sortie globale pour toutes les sessions utilisateur ou cette option de cache est-elle spécifique à chaque session. Dans d'autres mots, si User1 apporte une demande dans laquelle une action avec un attribut de sortieCache est définie sur 1 heure commence leur demande à sa demande de midi (12h00). User2 apporte une demande à la même action, mais à Sayon-trente (12h30). Le résultat mis en cache sera-t-il le même pour les deux utilisateurs et, dans l'affirmative, la sortie en cache pour User2 sera-t-elle rafraîchie à 13h00? P>
3 Réponses :
dépend. Si votre URL contient des pièces spécifiques à l'utilisateur (E.G. La mise en cache dans ASP NET MVC n'est pas différente des formulaires Web, il s'agit simplement de la même infrastructure qui est ~ / blogs / userID / 1 code>), oui, sinon ce n'est pas spécifique à la session. Vous pouvez l'ajuster correctement en fonction de Vary By Param, ... p>
J'ai une question de mise en cache ici . Appréciez votre contribution
Vous pouvez utiliser VaryByParam comme Aliostad dit, la durée serait alors spécifique de session, sinon ce n'est pas le cas.
[OutputCache(Duration=10, VaryByParam="none")]
J'aime votre réponse parce que vous avez fourni un exemple. Merci. +1. Parce que Aliostad a en fait fourni la même réponse d'abord, je reçois @aliostad la réponse.
La seule chose que VaryByparam peut faire est de faire des copies en cache uniques basées sur une chaîne de requête ou des valeurs de formulaire. La mise en cache serait spécifique à la session uniquement si l'ID de l'utilisateur ou une autre valeur d'identification est incluse dans les paramètres de requête ou de formulaire.
Vous pouvez facilement le faire Session Code> en fonction d'un
VarybyCustom CODE> et renvoyer le
SessionId code> (opération très peu coûteuse). P>