Le Hollandais Volant

include or not include

Toujours dans un soucis d'amélioration de la vitesse d'affichage des pages web, je suis face à un petit dilemme : faut-il mieux intégrer les CSS et JS directement dans la page HTML ou faut-il les garder en fichier séparés ?

En ce qui me concerne, ça ne changera rien : les fichiers seront physiquement séparés, car j'intègre les fichiers via PHP. C'est pour le chargement des pages que ça va changer beaucoup de choses. Avec les deux choix ci dessus, j'ai des avantages et des inconvénients :

fichiers séparés par type un seul fichier tout en un
Les PLUS :
  • Fichiers séparés : possibilité de faire un lien vers le CSS ou le script.
  • Conforme aux recommandations du W3C.
  • Code plus propre.
  • Plus lisible si vous regardez le code source.
  • Possibilité de mise en cache du CSS/JS : gain de vitesse et de bande passante.
  • On peut faire un fichier CSS pour plusieurs pages.
Les MOINS :
  • Sur mon hébergeur : la compression Gzip des pages ne peut se faire pour fichiers externes.
  • D'où : page moins légère.
Les PLUS :
  • Si j'intègre : le CSS/JS sera lui aussi compressé : gain en poids de la page (supérieurs à 10%).
  • Donc : page plus légère (affichage plus rapide, mais aussi ma bande passante qui diminue :-)
  • Moins de requettes HTTP : plus rapide pour vous et moi.
Les MOINS :
  • Code source moins propres.
  • Le CSS/JS sera télécharger à chaque visite du site : pas de mise en cache du CSS chez vous.
  • D'où : téléchargement de code inutile : le gain gagné par GZip est reperdu à la longue.

Vous constatez que chaque solution a ses avantages et inconvénients (comme toujours). On peut voir une chose cependant, c'est que c'est une question de sémantique (code propre, etc.) versus une question de performances techniques. Je dois donc choisir.

Si je voulais pousser encore plus, je devrais voir en fonction des visiteurs : sont-ce les mêmes qui reviennent (dans ce cas, les fichiers séparés est mieux : mise ne cache) ou est-ce je n'ai que des visiteurs uniques (auquel cas, l'intégration est mieux).
Les visiteurs visitent-ils plusieurs pages (et il vaut mieux séparer) ? Ou ne passent-il que sur une page ?

Bah, même si je chercherais une solution idéale (Gzip sur les fichiers externes qui marche pour mon hébergeur), je laisse comme c'est : les fichiers séparés. C'est pas comme si je manquais critiquement de bande passante ou si la page était super lourde. Mais j'ai trouvé intéressant de voir un peu la comparaison, et je voulais vous montrer ça.