2009-04-29 6 views
2

double:Multiple javascript/css files: best practices?Y compris les charges de fichiers CSS et Javascript fichier - Comment optimiser

Salut les gars, ma demande est presque fait, mais la chose est que je l'ai remarqué que je suis, y compris beaucoup de fichiers javascript externes et css. J'utilise beaucoup de plugins gratuits de tiers ici et je n'ai pas voulu toucher le code de peur de tout chambouler.

Mais le résultat est que j'ai maintenant inclus 8 fichiers css externes ainsi que 20 énormes fichiers Javascript externes: O - Je ne me souviens pas d'avoir vu un site majeur inclure plus de 2 ou 3 css_ js fichiers combinés donc je dois certainement faire quelque chose de mal ici. Comment puis-je résoudre ce problème - j'ai lu quelque part qu'un gros fichier js est plus rapide à charger que 2 ou 3 fichiers qui sont même la moitié de la taille accumulée.

Toute aide serait grandement appréciée

Répondre

2

Un fichier volumineux est préférable à un petit groupe car dans ce cas, le navigateur Web envoie une requête au serveur Web au lieu de, disons, 8 demandes. Ce qui compte le plus, ce ne sont pas les légères différences de taille totale, mais le total latency des demandes. Imaginez deux scénarios: vous téléchargez un fichier de 8 Ko et 8 fichiers de 1 Ko chacun.

  1. Dans le premier scénario temps total est lissée comme 80 msec (temps de transfert) + 50 ms (temps de latence) = 130 msec

  2. Dans le second scénario, vous avez smth comme 8x10 msec (temps de transfert) + 8x50 msec (!) De latence = 480 msec (!)

Vous voyez la différence. Ce n'est en aucun cas un exemple complet, mais vous avez l'idée.

Donc, si possible, fusionner les fichiers ensemble. Compresser le contenu pour diminuer la quantité de données à transférer. Et utilisez la mise en cache pour vous débarrasser des demandes répétitives.

+0

N'y a-t-il aucun risque de provoquer des conflits si je fusionne les fichiers javascript ensemble? Ou est-ce juste une question de copier coller le contenu du fichier les uns après les autres dans un fichier énorme? – Ali

+0

Oui, il peut y avoir des conflits. Mais il y a toujours un compromis: si vous voulez l'optimiser et le rendre plus rapide, vous devez investir du temps pour vous assurer qu'il fonctionne correctement. –

0
+1

Bien que ce lien puisse répondre à la question, il est préférable d'inclure les parties essentielles de la réponse ici et fournir le lien pour référence. Les réponses à lien uniquement peuvent devenir invalides si la page liée change. Jetez un oeil à cet article: [Comment écrire une bonne réponse] (http://stackoverflow.com/help/how-to-answer). – ByteHamster

0

Dans les projets passés, j'ai utilisé SmartOptimizer pour la compression JS et Fichiers CSS à la volée. C'est un mini-fichier basé sur PHP. L'utilisation d'un minifi- cateur «juste à temps» vous évite d'avoir à séparer les fichiers sources et les fichiers miniaturisés. Bien sûr, il y a une petite puissance de traitement nécessaire pour continuer à réduire les fichiers. En outre, le chargement d'un seul fichier minified est mieux avec les avantages suivants:

  1. taille du fichier (pour sûr)
  2. Aucun retard de téléchargement composante parallèle, car moins de scripts/feuilles de style.
+0

Semble bien, mais votre lien semble être brisé. – BrynJ

1

Si vous combinez vos fichiers CSS dans un fichier (et même pour JS) dans l'ordre où ils sont actuellement chargés sur la page, ils fonctionneront exactement comme avant; C'est quand vous commencez à changer l'ordre que les règles peuvent remplacer de façon inattendue celles auxquelles ils n'avaient pas l'habitude.

1

La plupart de vos fichiers devraient se retrouver dans le cache côté client de toute façon, donc je ne serais pas trop inquiet à ce sujet. Assurez-vous simplement que vous définissez les bons en-têtes. Bien sûr, si c'est la première page de votre site alors oui, vous devriez probablement optimiser davantage.

Questions connexes