Je souhaite pouvoir définir une durée d'expiration longue pour certains éléments qu'un utilisateur télécharge via la requête GET. Je veux dire 'c'est bon pour 10 minutes' (c'est-à-dire que je veux définir un en-tête Expires pendant +10 minutes). Les demandes sont des fragments de HTML qui sont affichés dans la page via AJAX et ils sont bons pour la session de l'utilisateur. Je ne veux pas retourner au serveur et obtenir un 304 s'il en a besoin - Je veux que le cache du navigateur me donne instantanément le même élément.Comment utiliser au mieux l'en-tête Expires dans ASP.NET MVC?
J'ai trouvé un article qui date de presque un an sur MVC Action filter caching and compression. Cela crée un ActionFilter personnalisé pour modifier l'en-tête expires. J'utilise déjà le filtre de compression qui fonctionne très bien pour certains css personnalisés que je génère (taux de compression de 94%!).
J'ai deux principales préoccupations:
1) Dois-je vraiment utiliser cette méthode. Je suis bien avec si je le fais, mais il n'y a vraiment aucune fonctionnalité dans MVC ou la fonctionnalité OutputCache pour le faire pour moi? Dans ASP.NET 'traditionnel', j'ai toujours réglé l'en-tête Expires manuellement, mais nous ne pouvons plus le faire - du moins pas dans le contrôleur.
2) Si j'utilise cette méthode de filtrage - va-t-elle interférer avec la politique OutputCache - que je veux pouvoir contrôler dans web.config. Je pense que les deux sont mutuellement exclusifs et vous ne voudriez pas les deux - mais je ne suis pas complètement sûr.
@craig merci pour vos commentaires. Je suppose qu'une règle de base concernant # 2 est que si la vue générée est très simple (c'est-à-dire pas d'accès à la base de données) alors expire peut être tout ce qui est nécessaire. Si dix appels de méthode Web sont requis, vous devez utiliser OutputCache. parfois vous voulez des têtes ET des queues à droite :-) –
Considérez: Si 10 personnes (sur différents ordinateurs) demandent votre page 10 fois chacune, Expire par lui-même signifie que votre action s'exécute 10 fois et le serveur gère 10 demandes. La mise en cache seule signifie que votre action s'exécute une fois et que le serveur gère 100 requêtes. Expire et met en cache ensemble signifie que votre action s'exécute une fois et que le serveur gère 10 demandes. –