28106 sujets

CSS et mise en forme, CSS3

Bonjour,
Je suis sur la refonte d'un site et voilà ce que je trouve dans le code html pour appeler le fichier css :
<link rel="stylesheet" type="text/css" href="css/fichier.css?4094466338" id="pagesheet"/>

Pourtant le fichier css enregistré dans le dossier s'appelle juste "fichier.css"

A quoi sert le "?" et les chiffres après ?
A quoi sert l'id ?

perso je n'avais jamais vu ça...

Merci !!

Antoine
C’est une technique communément utilisée pour s’assurer que le navigateur va bien charger la dernIère version d’un fichier plutôt qu’utiliser la version ancienne qui est dans son cache.
Si la version en cache à été lue avec une version différente, le navigateur chargera la nouvelle version.
Je l’utilise dans tous les sites que je gère
Modifié par PapyJP (11 Feb 2019 - 23:33)
Moi j'utilisais cette technique via PHP, par facilité... En effet, le seul problème - mais de taille - est qu'elle interdit la mise en cache du fichier par le navigateur.
Par expérience je crois qu’elle n’interdit pas la mise en cache: l’adresse mémorisée par le navigateur contient l’extensIon, si on envoie à nouveau l’adresse avec la même extension le navigateur la retrouve dans son cache et ne la recharge pas. C’est du moins le cas sur les navigateurs avec lesquels je fais des tests.
De toute façon, si on veut faire une modification dans un fichier js ou css, il faut bien trouver une solution pour que les navigateurs ouvrent la nouvelle version, et je n’ai pas trouvé d’autre solution.
Regarde l'appel des fichiers styles et javascript dans le code source du forum. Il s'agit de fichiers vérifiés/compilés/minifiés/renommés avec des outils gestionnaires de tâches, sous Node.js par exemple (les fameux tasks runners, tels que Grunt ou Gulp, mais aussi de simples instruction en lignes de commande).

Je les utilise aussi, mais je ne fais pas de renommage de mes fichiers (et la modification du lien d'appel en conséquence), je devrais...
Je constate encore une fois la force du mythe "temps de chargement des fichiers js ou css": si tu regardes la taille de ces fichiers, elle est 99% du temps très inférieure à celle des plus petites images que la plupart des sites utilisent à foison.
Je ne comprends pas en quoi le fait que les fichiers soient vérifiés/compilés/minifiés/renommés change quoi que ce soit.

Ou bien tu as des fichiers HTML faisant référence à des fichiers js ou css:
Dans ce cas là, quand tu changes le contenu d'un fichier css ou js
Option A: tu changes son nom: conséquence les mises à jour ne sont pas prises en compte par les anciens fichiers HTML sauf à les modifier
Option B: tu ne changes pas son nom: conséquence, les anciens fichiers HTML utiliseront la version en cache si elle y est, ou la nouvelle version si elle n'y est pas.

Ou bien tu n'as pas de fichiers HTML qui fassent référence à des fichiers js ou css, parce que ce qui est envoyé au navigateur est généré en PHP en utilisant le nom de la version la plus récente des fichiers js et css.
Je suppose que c'est ça le truc???
Bonjour,

ce qui coûte des ressources c'est de faire des requêtes http plus que le poids réel du fichier (pour HTTP/1.1). Certains site multiplient les fichiers css/js et donc les requêtes http. C'est pour ça que ces fichiers sont souvent concaténés et minifiés. D'autant que c'est relativement simple à mettre en place pour un gain notable.
Les mêmes sites utilisent des images qui elles aussi nécessitent une requête pour chacune, et ça ne semble pas les gêner....
Il y a d'autres stratégies pour les images comme les sprites, le lazy load ou le simple bon sens en n'en affichant pas trop sur une même page. Cela fait partie d'un compromis car il y a forcément des fichiers a charger dans une page web. Certaines routines sont très facile à mettre en place comme la minification/concaténation c'est pour cela qu'on les retrouve très souvent.

Il ne faut pas se priver de mettre en place les optimisations simples car cela économise les ressources du serveur, la bande passante et l'affichage côté client.
Je regrette, je ne suis pas convaincu, mais c’est sans importance. Smiley smile
Les principaux problèmes en matière de développement de logiciels ont trait à la maintenabilité du code. Si on veut pouvoir maintenir un code complexe et utiliserais outils de minification et autres, ça demande une organisation très stricte de la production et de la distribution. Ça a un sens pour du code industriel mais pas pour des sites de taille moyenne.
En fait la principale utilité de ces outils c’est de rendre le code plus difficile à pomper.
Pour s'en convaincre il suffit de vérifier avec son inspecteur dans l'onglet réseau comment sont chargées les ressources. Ceux qui font ça ont en effet des routines bien huilées et ne passent concrètement aucun temps là dessus. Et bien entendu ce n'est pas envisageable avec du code fait de bric et de broc.

Réduire le nombre de requêtes HTTP c'est la base de l'optimisation web. Après que ça ne t'intéresse pas c'est autre chose et je comprend mais ce n'est pas un mythe. Smiley cligne