2010-05-25 8 views
3

Je me demande s'il est logique d'augmenter la vitesse du site web pour faire de la mise en cache des fichiers js qui sont inclus?asp.net-mvc: mise en cache javascript

une idée que j'ai est de faire quelque chose comme ceci:

[OutputCache(Location = OutputCacheLocation.Any, Duration = 3600)] 
public JsController : Controller 
public ActionResult JQuery() 
{ 
//I would have a ascx with the entire jquery script inside 
return View(); 
} 

et sur le Site.master:

<%=Html.RenderAction("JQuery","JsController"); 
+0

Quelle est la raison jQuery n'est pas seulement un fichier statique? – balpha

+0

@balpha aucune raison, je voulais juste utiliser l'attribut OutputCache pour mettre en cache son conent, je ne sais pas si cela a du sens – Omu

Répondre

7

qui n'est pas nécessaire. Vous pouvez spécifier la stratégie de cache pour JS (et tous les fichiers statiques) sur le web.config et sur les services Internet (IIS).

Pour jQuery en particulier, vous pouvez référencer la bibliothèque depuis google CDN.

http://code.google.com/apis/ajaxlibs/documentation/#jquery

+0

Non seulement ce n'est pas nécessaire, mais c'est nocif parce que le javascript sera incorporé dans chaque page HTML rendant chaque téléchargement de page HTML plus grand. –

+0

@Claudio Redi pourriez-vous me montrer comment le faire dans web.config? – Omu

+0

@Omu: quelle version d'IIS? –

3

Le navigateur client déjà caches inclus les fichiers javascript. Pour les bibliothèques standard telles que jQuery, vous pouvez utiliser un CDN car il est probable qu'il soit déjà mis en cache dans le navigateur client.

1

Je ne pense pas que vous deviez utiliser OutputCache pour mettre en cache des fichiers de contenu. Vous pouvez utiliser le fichier config:

<system.webServer> 
    <staticContent> 
    <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="10.00:00:00" /> 
    </staticContent> 
</system.webServer> 

Ce serveur web ainsi racontera navigateur pour mettre en cache le contenu statique (JS, CSS et images) et de ne pas vérifier le nouveau contenu pendant 10 jours.

Par défaut, tout navigateur doit mettre en cache du contenu statique. Vous pouvez voir tout le contenu qui est mis en cache dans Chrome en tapant dans la barre d'adresse chrome://cache