Commentaires sur : Des sprites jusqu’à plus soif https://performance.survol.fr/2008/06/des-sprites-jusqua-plus-soif/ Quelques mots pour des sites web rapides Sat, 09 Jul 2011 15:14:23 +0000 hourly 1 https://wordpress.org/?v=5.2.3 Par : Annie https://performance.survol.fr/2008/06/des-sprites-jusqua-plus-soif/#comment-206 Sat, 09 Jul 2011 15:14:23 +0000 http://performance.survol.fr/?p=45#comment-206 je découvre ce blog… que ne trouve-je d’hab que des trucs en anglais qu’il faut déjà traduire ou comprendre dans le texte+ la technique c’est hard.
les sprite le yslow le réclame à grands cris (ou c’est speed, en tout cas google
http://pagespeed.googlelabs.com/ )
si je comprends la technique et que j’ai vu les sites qui la font pour nous (quoique en vertical alors que c’est pas la 1er que je lis que c’est mieux en horizontal), je ne comprends toujours pas, une fois « armé » de tout, où on les met ? (question bête pour vous j’en suis sûre)

]]>
Par : Les générateurs de sprites CSS | Webaaz https://performance.survol.fr/2008/06/des-sprites-jusqua-plus-soif/#comment-205 Wed, 28 Apr 2010 13:03:57 +0000 http://performance.survol.fr/?p=45#comment-205 […] Voir les explications sur le blog Performances […]

]]>
Par : Point trop n’en faut — Performance web https://performance.survol.fr/2008/06/des-sprites-jusqua-plus-soif/#comment-204 Wed, 24 Jun 2009 10:01:33 +0000 http://performance.survol.fr/?p=45#comment-204 […] à plusieurs de ces publications à propos des sprites CSS, il est temps de faire ici un petit complément sur le […]

]]>
Par : Florent V. https://performance.survol.fr/2008/06/des-sprites-jusqua-plus-soif/#comment-203 Sun, 14 Dec 2008 12:22:21 +0000 http://performance.survol.fr/?p=45#comment-203 C’est effectivement un problème de mise en pratique plutôt qu’un défaut inhérent à la technique. Prenons par exemple ta présentation faite à l’AFUP, slide 38: tu reprends une image utilisée par Google Search (google.com, google.fr…), qui suggère très fortement une utilisation abusive. J’ai vérifié sur une page de résultat, et on a bien affaire dans certains cas à une technique de remplacement d’image, même si je dois avouer que dans l’ensemble ils ont très bien fait les choses. Je m’inquiète un peu pour le logo «Google Checkout» et certaines images de bouton (type fermeture de fausse fenêtre), par contre.

Il reste que dans les recommandations sur l’utilisation des sprites mentionnent rarement la question de l’accessibilité. Voir par exemple: http://developer.yahoo.com/performance/rules.html#opt_sprites

Du point de vue strict de la performance (au sens technique, pas commercial), utiliser les sprites y compris pour des boutons d’action sans intitulé fait parfaitement sens. Est-ce le rôle des publications sur la performance web de mentionner ce problème potentiel? Je pense que oui.

]]>
Par : Éric https://performance.survol.fr/2008/06/des-sprites-jusqua-plus-soif/#comment-202 Tue, 09 Dec 2008 12:40:35 +0000 http://performance.survol.fr/?p=45#comment-202 Déjà : uniquement pour les images décoratives. Ca ne concerne pas les images de contenu, et ça ne concerne que des images qui ne sont pas indispensables à la compréhension. Bref, de la décoration. Du coup pour moi le problème d’accessibilité est de fait limité.

Il n’est pas question de cacher les intitulés pour les remplacer par un sprite (ce dont tu parles), mais d’ajouter une icone décorative à côté de cet intitulé pour aider l’utilisateur. Pas de problème spécifique d’accessibilité donc.

Qu’on soit clair, je ne parle PAS de remplacement d’image ici. Et ton problème d’accessibilité est lié au remplacement d’image, pas au sprite.

Sauf cas exceptionnel celui qui supporte CSS saura tirer profit des règles de positionnement de background donc ça ne posera pas de problème. Si tu te débrouilles bien, dans une majorité des cas tu peux trouver un moyen de positionner ton sprites pour que ça ne « casse » pas même si on augmente les taille de police. Bref, il y a des exceptions mais dans l’ensemble ça fonctionne sans dégats ici aussi.

Après dans CSS3 il y a des moyens de découper l’image précisément (au lieu de simplement la positionner avec le risque de voir les autres icones à côté) et de remplacer le contenu de manière propre (sans aucun risque d’accessibilité). Mais … en CSS3, donc pas pour tout de suite.

]]>
Par : Florent V. https://performance.survol.fr/2008/06/des-sprites-jusqua-plus-soif/#comment-201 Tue, 09 Dec 2008 11:09:23 +0000 http://performance.survol.fr/?p=45#comment-201 Hello,

Je m’étonne qu’Aurélien ou Stéphane n’aient pas relevé — au moins à titre d’avertissement — les gros problèmes d’accessibilité potentiels. Ils parlent du cas des images de fond utilisées comme illustration (ou permettant de préciser un intitulé, mais dans tous les cas on a un intitulé), et du risque de voir apparaitre plusieurs icônes pour un même item, par exemple. C’est effectivement un problème (pour ne pas parler des sprites sous la forme de grilles qui demandent d’utiliser un élément vide en HTML si on veut réellement placer une image comme icône sans afficher d’autres images plus à droite, sous le texte), mais c’est loin d’être le principal.

Le principal problème, c’est l’utilisation d’éléments vides ou d’éléments au texte caché (liens et boutons sans intitulé ou liens et boutons dont on cache les intitulés en CSS) pour créer des boutons cliquables à partir d’une image de fond. Ce n’est pas un problème limité aux sprites, mais la technique des sprites incite très clairement à ce type de pratique. Il suffit de voir les images données comme exemple, dans lesquelles on retrouve souvent des boutons et icônes dont on peut supposer qu’ils seront utilisés sans texte HTML visible.

La technique des sprites serait réellement intéressante si elle permettait d’éviter cet écueil, c’est à dire si on pouvait:

1. utililiser l’élément IMG (avec attribut alt) pour afficher une portion d’image et pas l’image complète;
2. utiliser un mécanisme HTML ou CSS standard pour dire «telle portion de telle image est un équivalent strict du contenu de tel élément».

Vu qu’aucune de ces deux solutions n’existe, il y a un risque fondamental pour l’accessibilité des interfaces. Il appartient bien sûr à chaque intégrateur de faire les choses au mieux, mais vu les mythes sur les remplacement d’images accessibles largement répandus j’ai bien peur qu’attirer l’attention sur les sprites ne bénéficie aux performances qu’au détriment de l’accessibilité.

Sinon, dans l’absolu, propriété content + data URI + CSS variables/constants, peut-être un coup à jouer à l’avenir?

]]>
Par : laurent https://performance.survol.fr/2008/06/des-sprites-jusqua-plus-soif/#comment-200 Thu, 09 Oct 2008 07:37:36 +0000 http://performance.survol.fr/?p=45#comment-200 Je n’affirme rien, je ne fais que poser la question… et en même temps je ne tiens pas compte de l’impression de chacun… si on s’en tenait à nos impressions on serait toujours à croire que la force de la gravité attire de la même manière une plume et un boulet de canon.
Le seul moyen de le savoir serait d’utiliser deux classes heavy-cls (avec un image de 200ko) et light-cls (avec une image de 1px sur 1px) et d’afficher dans une page 99 et 1 … relever la mémoire pour IE, Opéra… et de switcher light-cls avec heavy-cls et regarder la nouvelle place mémoire utilisée. En 2009 on risque de se pencher sur le problème et à ce moment je ferais les tests et je vous tiendrais informé. Si quelqu’un a du temps pour tester ca avant… l’info m’intéresse 🙂 Merci

]]>
Par : Éric https://performance.survol.fr/2008/06/des-sprites-jusqua-plus-soif/#comment-199 Fri, 03 Oct 2008 13:39:27 +0000 http://performance.survol.fr/?p=45#comment-199 Anthony Ricaud me dit qu’il a posé la question à l’équipe webkit. D’après eux une image n’apparait qu’une seule fois en mémoire si elle est toujours référencée par la même URL.
Il ajoute, et je suis d’accord, que c’est assez logique et qu’il serait étonnant que d’autres moteurs fonctionnent différemment.

Reste donc le fait qu’on charge une grosse image pour potentiellement ne pas tout utiliser, mais là franchement c’est moi qui vais affirmer que si vous ne faites pas n’importe quoi, c’est plus que négligeables dans le cas qui nous préoccupe.

(Note: Anthony n’arrive pas à envoyer son commentaire, je ne sais pas pourquoi. Si quelqu’un est dans la même situation, envoyez moi un mail)
(qui n’arrive pas à poster de commentaire, je ne sais pas pourquoi

]]>
Par : Éric https://performance.survol.fr/2008/06/des-sprites-jusqua-plus-soif/#comment-198 Fri, 03 Oct 2008 10:03:38 +0000 http://performance.survol.fr/?p=45#comment-198 C’est une technique employée avec succès partout où je l’ai vue, sur IE aussi, sans faire ramer le navigateur. J’aurai donc tendance à dire « foncez ».

Maintenant un test objectif n’est jamais de trop donc je t’invite à tester, et à nous faire des retours si tu vois quelque chose d’étrange. Je doute cependant que cela puisse être un problème dans ce cas précis.

]]>
Par : laurent https://performance.survol.fr/2008/06/des-sprites-jusqua-plus-soif/#comment-197 Fri, 03 Oct 2008 07:10:41 +0000 http://performance.survol.fr/?p=45#comment-197 La gestion de la mémoire n’est pas le fort d’IE, et pour le confort de l’utilisateur on doit faire très attention aux problèmes de mémoire.
Je travail sur des RI.A. et quand tu te retrouves avec un IE ou FF utilisant 2Go de mémoire après 20 minutes d »utilisation, je te jure que ca fait pas plaisir à l’utilisateur, surtout si au final on aboutit à un plantage du navigateur.
Alors d’accord, on aura gagné quelques secondes au chargement de la page mais si c’est au prix d’un redémarrage du navigateur au bout de quelques minutes d’utilisation, ou pire un redémarrage de l’ordinateur, je doute que l’utilisateur apprécie ce petit bénéfice 🙂

]]>
Par : Éric https://performance.survol.fr/2008/06/des-sprites-jusqua-plus-soif/#comment-196 Thu, 02 Oct 2008 12:31:27 +0000 http://performance.survol.fr/?p=45#comment-196 Sérieusement je ne sais pas. C’est à tester.
Ce qui est sur c’est que même sur les petites machines c’est au final plus performant côté utilisateur. Donc que même si ça occupait plus de mémoire, c’est tout de même au bénéfice de l’utilisateur. Le bénéfice de l’utilisateur reste ce qui reste le plus important, et troquer une ressource chère contre une ressource pas chère est toujours pertinent.

]]>
Par : laurent https://performance.survol.fr/2008/06/des-sprites-jusqua-plus-soif/#comment-195 Thu, 02 Oct 2008 10:29:10 +0000 http://performance.survol.fr/?p=45#comment-195 l’idée est intéressante mais cotés mémoire pour les navigateurs ?
En flash, un sprite, une fois dans la bibliothèque peut être utlisé 1 000 000 de fois sans nécessité d’avantage de mémoire mais sous IE, ou FF ou opéra, comment gère t’il l’image en mémoire si celle ci est utilisée à plusieurs endroits différents ? Quelqu’un sait ?
On travail sur des IHM de plus en plus gourmand en mémoire avec les framework javascript etc… je trouve que ca a son importance.

]]>
Par : Sprites et clipping — HTML zen garden https://performance.survol.fr/2008/06/des-sprites-jusqua-plus-soif/#comment-194 Wed, 20 Aug 2008 21:18:15 +0000 http://performance.survol.fr/?p=45#comment-194 […] Toujours en quête de meilleures performances, je m’attarde et j’extrapole (un peu) sur les sprites CSS. […]

]]>
Par : Louis https://performance.survol.fr/2008/06/des-sprites-jusqua-plus-soif/#comment-193 Mon, 11 Aug 2008 11:31:42 +0000 http://performance.survol.fr/?p=45#comment-193 Wow, un site français focalisé sur les performances web ? Dire que je croyais être le seul français passionné par cet aspect du développement web.

Je vais dévorer les autres billets, merci !

]]>
Par : Stéphane Deschamps https://performance.survol.fr/2008/06/des-sprites-jusqua-plus-soif/#comment-192 Fri, 11 Jul 2008 08:34:27 +0000 http://performance.survol.fr/?p=45#comment-192 +1 avec goetsu.

J’agrandis souvent les polices et urgl (comme on dit en bas-Ougrien).

C’est plus qu’un problème seulement potentiel, c’est un problème réel qui peut même induire des difficultés de compréhension du message véhiculé par l’icône.

J’aurais bien une saisie d’écran à fournir mais je ne sais pas si l’auteur du site en serait ravi.

(waouh mon premier commentaire ici, je peux mourir en paix maintenant) 😉

]]>
Par : goetsu https://performance.survol.fr/2008/06/des-sprites-jusqua-plus-soif/#comment-191 Sat, 05 Jul 2008 08:42:57 +0000 http://performance.survol.fr/?p=45#comment-191 Potentiellement il y a aussi un problème lorsque l’ont ne laisse pas assez d’espace entre les images. En effet, si je grossi la taille des caractères les blocs ont tendance à grossir en hauteur (sauf utilisation d’em) et donc on peut se retrouver avec d’autres images que celles prévu qui apparaissent

]]>
Par : Allogarage https://performance.survol.fr/2008/06/des-sprites-jusqua-plus-soif/#comment-190 Thu, 19 Jun 2008 15:33:28 +0000 http://performance.survol.fr/?p=45#comment-190 Pingdom est pas terrible vu qu’il n’exécute pas le javascript.

Le plus simple pour tester c’est YSlow, sinon un outil beaucoup mieux, assez récent, pagetest :
http://pagetest.patrickmeenan.com:8080/

C’est encore mieux que YSlow à mon avis (en tout cas au moins complémentaire car il utilise IE) car il affiche les vrais temps de réponse avec le détail au niveau du lookup DNS contrairement à YSlow, il fait des tests avec et sans cache, et en plus il est dispo online avec un client de test aux états unis.

]]>
Par : Yoan https://performance.survol.fr/2008/06/des-sprites-jusqua-plus-soif/#comment-189 Wed, 18 Jun 2008 22:04:23 +0000 http://performance.survol.fr/?p=45#comment-189 Je viens de tomber sur un joli sprite: http://www.sproutcore.com/static/sproutcore/en/images/sc-theme-sprite.png

Sinon, détail important, pour ceux qui se souviennent toujours du problème qu’a IE6 avec les images de fond qui clignotent. Pensez à activer le cache, j’ai pu observer mon design apparaissant tout lentement, deux images à la fois.. images qui sont bien évidemment les même. Ce qui n’était pas terrible pour des ombres portées (de la mort).

]]>
Par : Antoine https://performance.survol.fr/2008/06/des-sprites-jusqua-plus-soif/#comment-188 Wed, 18 Jun 2008 16:31:05 +0000 http://performance.survol.fr/?p=45#comment-188 Oui, le fork ne coûte pas grand chose. Par contre un accès disque beaucoup plus. Le temps de préparation de la réponse côté serveur est flagrant lorsqu’on regarde les graphes de Pingdom. Par exemple pour la page d’accueil de Flickr : http://tools.pingdom.com/fpt/?url=http://www.flickr.com&treeview=0&column=objectID&order=1&type=0&save=true
C’est tout se qui se trouve en vert. Le temps pris est à peu près équivalent à la latence (selon le site, il peut être inférieur ou supérieur).
Cela dit, quelle que soit l’origine, on en arrive au même point : il vaut mieux un téléchargement un peu plus gros que plein de petits :o)

]]>
Par : Éric https://performance.survol.fr/2008/06/des-sprites-jusqua-plus-soif/#comment-187 Wed, 18 Jun 2008 13:29:51 +0000 http://performance.survol.fr/?p=45#comment-187 En fait le cout d’une requete HTTP est surtout celui de la latence, plus que celui du fork et de la réaction coté serveur. Mais sinon oui, du point de vue client une requête HTTP coute cher, souvent bien plus que quelques octets sur une image.

]]>
Par : Antoine https://performance.survol.fr/2008/06/des-sprites-jusqua-plus-soif/#comment-186 Wed, 18 Jun 2008 13:06:45 +0000 http://performance.survol.fr/?p=45#comment-186 Merci pour l’explication détaillée, j’en avais entendu parler à plusieurs reprises, mais je ne m’étais jamais penché dessus de manière détaillée.

Concernant le surcoût de la bande passante, c’est vraiment négligeable comparé au gain en termes de requêtes HTTP. Une requête HTTP, c’est un échange entre le client et le serveur, éventuellement le serveur doit faire un fork, il y a plusieurs accès disques (le fichier demandé, les .htaccess…), etc. Du coup, le plus souvent la phase de préparation du fichier prend plus de temps que le transfert en lui même. Il faut vraiment être dans un cas extrême pour que ça mette plus de temps (on parle des images de l’interface là, ce sont de petites images en général). Donc même si on gagne quelques millisecondes, en compressant mieux les fichiers, elles seront gâchées dès la première requête HTTP supplémentaire.

Pour vous en convaincre, vous pouvez vous amuser avec le full page test de Pingdom, que je trouve assez génial : http://tools.pingdom.com/fpt
Je ne sais pas si vous connaissiez ? Il montre de manière détaillée le chargement complet d’une page. Leur blog est intéressant aussi.

]]>
Par : Éric https://performance.survol.fr/2008/06/des-sprites-jusqua-plus-soif/#comment-185 Tue, 17 Jun 2008 17:56:20 +0000 http://performance.survol.fr/?p=45#comment-185 Tiens, ça c’est bigrement intéressant comme montage de générer ça directement à partir des déclarations CSS elles-même. C’est tellement simple que c’est ridicule de ne pas y avoir pensé.

Reste tout de même qu’après il faut souvent repasser derrière l’outil pour afiner la compression, avant d’envoyer le fichier sur le CDN, donc l’url n’est pas forcément encore fixée pour l’outil. Ca n’est pas insurmontable ceci dit.

Merci pour l’URL

]]>
Par : Allogarage https://performance.survol.fr/2008/06/des-sprites-jusqua-plus-soif/#comment-184 Tue, 17 Jun 2008 16:25:58 +0000 http://performance.survol.fr/?p=45#comment-184 Très bon article, comme d’habitude. Juste une réserve, celle des générateurs de sprites. Je pense que des outils beaucoup plus automatisés vont sortir, par exemple http://smartsprites.osinski.name/. Tout est automatisé et on ne s’occupe plus de toute la partie css ni de l’agrégation des images.

En tout cas d’après des tests effectués, c’est LE conseil performance qui permet de gagner beaucoup de temps.

Les thèmes wordpress et autres vont sûrement s’y mettre et livrer une version avec un seul sprite css pour tout le thème.

]]>
Par : Éric https://performance.survol.fr/2008/06/des-sprites-jusqua-plus-soif/#comment-182 Tue, 17 Jun 2008 13:50:57 +0000 http://performance.survol.fr/?p=45#comment-182 Disons que tu télécharges tout même si tu n’utilises pas tout. Mais en pratique le sprite consommera moins que la somme des images. Donc même si tu n’utilises pas tout, tu peux te retrouver en positif du pur point de vue de la bande passante.

Ensuite c’est en effet un compromis entre la multiplication des requêtes HTTP et la fréquence d’utilisation des images.

Si tu met bien une expiration explicite sur tes images statiques, que tes pages utilisent toutes une douzaines d’images de fond, il est probable que le gain sur les requêtes compense facilement la différence de poids due aux images non utilisées.

Maintenant effectivement, si tu as peur de ne pas tout utiliser tu peux faire des sprites par thématiques ou par section.

Mais dans l’ensemble, de ce que j’ai pu constater, en cas de doutes il y a plutot intérêt à aggréger qu’à séparer. C’est simplement du au fait que pour toute requête tu as au moins un aller-retour réseau de 30 à 100ms et 1ko entre les entêtes de requête et les entêtes de réponse, et 1ko encore pour le contenu de l’image.
Au final le surcoût de bande passante pour faire passer d’un coup 10 icones dans l’image est assez faible sur le coût total de l’image initiale. Si tu n’utilises pas tout ce n’est pas très grave. Par contre si tu as besoin de lancer une nouvelle requête, là le surcoût est important.
Bien voir aussi que ce sprite servira aussi aux futures requêtes vers le même site, donc peut être que les icones surnuméraires seront utilisées dans les autres pages.

]]>
Par : Damien https://performance.survol.fr/2008/06/des-sprites-jusqua-plus-soif/#comment-183 Tue, 17 Jun 2008 13:21:43 +0000 http://performance.survol.fr/?p=45#comment-183 Cela évite les requêtes HTTP. Mais augmente la bande passante consommée. Surtout si l’on n’utilise pas toutes les images.

La chose est donc intéressante si on a de nombreuses images dans la page et que l’on les utilise toutes (ou une grande partie).

]]>