2009-11-30 4 views
1

J'ai commencé avec 5 fichiers JavaScript normaux lisibles par l'homme - ils étaient environ 10 Ko au total. Après avoir utilisé YSlow, j'ai décidé de fusionner les 5 fichiers et de les emballer en utilisant le packer de Dean Edwards. Maintenant, j'ai 1 fichier qui est de 4,5 Ko. Quand je relance YSlow, il affiche maintenant le fichier JavaScript dans le cache amorcé sous 'statistics', où précédemment (quand j'avais les fichiers séparés) les 5 fichiers auraient été mis en cache.YSlow dit que mon fichier JavaScript n'est plus mis en cache après avoir combiné 5 fichiers et les avoir emballés

J'ai maintenant 4 requêtes HTTP de moins mais le poids total de la page pour le cache amorcé est en hausse de 4,5 Ko.

Est-ce que je fais quelque chose de mal? Je prévois toujours de mettre un en-tête de date d'expiration avancé sur mon dossier JavaScript, donc ce problème disparaîtra probablement, mais je suis toujours intéressé de savoir pourquoi il ne mettra pas en cache les fichiers JavaScript.

+0

Cette programmation est-elle liée? Je pense que c'est mieux adapté sur serverfault.com – jitter

+1

Je dirais que c'est définitivement lié à la programmation - nous parlons de la meilleure façon de structurer vos fichiers js sur votre site web. – Nils

+1

Définitivement lié à la programmation! – AutomatedTester

Répondre

0

Je ne pense pas que vous fassiez quelque chose de mal du tout, vous suivez toutes les meilleures pratiques de base. Lorsque vous téléchargez un élément d'un serveur Web dont le expires n'est pas défini correctement, ce que je suppose être le cas puisque vous voulez corriger cela, le cache amorcé sera toujours plus élevé car YSlow pense que le navigateur doit le télécharger même quand il a tout mis en cache. Cela est dû au fait que le cache est défini pour expirer lorsqu'il est téléchargé car il n'y a pas d'en-tête Expires. Mise à jour de votre expiration pour avoir une longue durée de vie va définitivement régler votre problème.

+0

Eh bien la chose qui me laisse perplexe est que les 5 fichiers d'origine sont également tombés sans en-tête expires et yslow indique qu'ils ne seraient pas récupérés avec un cache amorcé. Après la fusion en 1 fichier et le packer de base (sans encodage), il veut obtenir le fichier js à chaque fois. – Nils

+0

Je vais fermer cette question - bien que le comportement soit étrange, la chose à faire pour le résoudre est certainement de définir l'en-tête expires, donc j'ai accepté cette réponse. Merci! – Nils

0

Lecture this article. Ici, ils montrent comment recharger le cache après la mise à niveau de vos fichiers.

+0

Merci, mais mon nouveau fichier a un nom différent à tous les 5 fichiers d'origine et les noms incluent cette technique de numéro de version. – Nils

Questions connexes