2010-11-25 20 views
0

Je suis au point où j'ai un tas de fichiers javascript et je ne suis pas sûr de savoir comment les mettre en cache dans un seul fichier. Je suis venu à travers l'utilisation:Mise en cache de base js assets dans Ruby on Rails

javascript_include_tag ... :cache => true 

mais j'ai un certain nombre de fichiers javascript qui sont spécifiques à une page spécifique ... est-il logique d'inclure tous dans ma mise en page, même si certaines pages ne ont pas besoin beaucoup de javascript là-dedans? Certaines de mes pages ne nécessitent pas de javascript, un navigateur va-t-il télécharger ce js concaténé pour chaque page?

Répondre

0

Certaines personnes jetteront tout leur JavaScript dans un fichier, mais je ne pense pas que cela ait beaucoup de sens si les routines ne sont pas utilisées dans chaque page. Réfléchissez à la manière dont vos scripts sont utilisés. Mettez ceux qui sont utilisés le plus souvent dans le plus de pages dans un fichier. Ensuite, s'il y a des scripts utilisés occasionnellement, placez-les dans des fichiers séparés. Ensuite, utilisez plusieurs instructions <script> dans votre fichier HTML pour y insérer celles dont vous avez besoin.

Si le navigateur d'un utilisateur est défini normalement, il téléchargera les scripts une fois puis les référencera depuis son cache local. La première fois qu'ils demandent la page, il faudra un peu plus de temps pour tout récupérer car il doit remplir le cache, mais à partir de ce moment, il sera rapide (er). Le navigateur utilisera la version mise en cache pour toutes les références au script. Le drapeau :cache => true peut vous aider si vous avez des scripts bajillion, car ils peuvent être compressés lors du premier téléchargement du fichier mais je ne pense pas qu'il accélère le chargement après que le navigateur les retire de son cache.

Caching multiple javascripts into one en parle.

0

n inclure des balises = n obtenir une requête sur le serveur. Cela ne fonctionne pas bien et la page Web devient plus lente.

Cela ne me dérangerait pas de tout réduire en un seul fichier. C'est un téléchargement une fois de toute façon et puis il est mis en cache dans le navigateur. Chaque situation est différente, donc analysez les vôtres en utilisant Yslow et voyez si la réduction en un seul fichier va aider ou non. Regardez également https://github.com/thumblemonks/smurf pour réduire votre js & en 2 fichiers.