2850

Il y a de multiples outils dédiés à l'optimisation sur la réduction du code JS et CSS, le rassemblement d'images/icones en une large tile avec le CSS généré pour afficher chaque image aux coordonnées X;Y...
Bien sûr, il y a un côté fainéant à ne pas s'intéresser à le faire avant de publier son site.

Malheureusement, moi même je n'y pense pas toujours. C'est majoritairement un travail de front-end, d'intégration. Le back pourrait bien charger 40 libs inutiles, ce n'est pas cela qui aurait un impact significatif sur les performances de l'utilisateur.
avatar
« Nous avons propagé sur Extranet une histoire fabriquée de toutes pièces selon laquelle une certaine disposition d'étoiles, vue depuis la planète d'origine des butariens, formaient le visage d'une déesse galarienne.
Sans chercher à vérifier ces informations, certains ont décrété que c'était la preuve de l'existence de la déesse. Ceux qui notaient le manque de preuves se faisaient attaquer. »

Legion, geth trolleur à portée galactique

2851

(en passant, c'est très bien Le maître et Marguerite, même si la finalité de ce livre m'a échappé)
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

2852

Exact, je regardais justement Yaronet qui ne semble pas faire usage de spritesheet pour ses PNG mais vu la taille des images il ne doit pas y avoir un énrome gain d'overhead avec une spritesheet.
Ca n'a pas un gros impact mais c'est du téélchargement inutile quoi qu'il arrive (un peu comme mes posts tien).

2853

Dans un idéal, une page ne devrait avoir qu'un contenu HTML chargé, qu'un fichier CSS condensé et compressé, un fichier JS condensé et compressé, et un fichier image pour tout le design du site. Tout le reste doit concerner les images du contenu (si possible web-optimised). Les appels à des web-services et appels AJAX doivent se dérouler suite à des actions utilisateurs.
L'utilisation d'une spritesheet n'a pas pour but de gagner du poids (même si ça peut aider) mais de réduire le nombre de requêtes échangées.

EDIT : https://gtmetrix.com/reports/www.yaronet.com/E4NFLleW
PageSpeed reproche à yN de ne pas utiliser de sprites.
YSlow trouve qu'il y a trop de requêtes (regroupement de JS, CSS et images en sprite). Sinon il reproche la non-utilisation d'un CDN, mais personnellement je ne suis jamais chaud à les utiliser.
En dehors de ça le score est bon smile
avatar
« Nous avons propagé sur Extranet une histoire fabriquée de toutes pièces selon laquelle une certaine disposition d'étoiles, vue depuis la planète d'origine des butariens, formaient le visage d'une déesse galarienne.
Sans chercher à vérifier ces informations, certains ont décrété que c'était la preuve de l'existence de la déesse. Ceux qui notaient le manque de preuves se faisaient attaquer. »

Legion, geth trolleur à portée galactique

2854

j'avais envie de rire donc :
https://gtmetrix.com/reports/devlynx.ti-fr.com/ZuL8uHGI
https://gtmetrix.com/reports/www.ti-fr.com/dUhLQRJ3 (les stats sont encore plus catastrophique à cause des deadlinks)
avatar
Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

2855

C'est marrant, c'était un bout de mon métier d'avant. On avait même un consultant qui commençait à aborder le sujet de SPDY : https://www.wikiwand.com/fr/SPDY
Cela dit, le CDN peut être vraiment bénéfique.
- Dans certains cas, on a eu des petits résultats sympas avec l'encodage d'images en base64 (jamais recommandé, mes dossiers allaient rarement dans ces extrémités).
- Sinon l'utilisation des IP géographiques, c'est bien aussi (avec un Wordpress MU, ça peut vite devenir compliqué).
- Le cache serveur, aussi et, pour certaines parties du site (non intéressant en SEO et sous la ligne de flottaison) non cruciales, on conseillait le post-chargement via Ajax.

Google, depuis les algos search de 2012/2013 est devenu hyper attentif à ça.
avatar
Slammeur (qu'on voit danser, le long des golfes clairs).
Mon blog qui parle de jeux-vidéo

2856

ca marche comment l'affichage de sous-parties d'images? confus

2857

Non mais sérieux la metrique quoi:

Minifying the following CSS resources could reduce their size by 72B (15% reduction).

Je me mange un "D(65)" sur https://gtmetrix.com/reports/box.godzil.net/yYwwxiHb
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

2858

En fait, au lieu de mettre une image de dimension W*H, on crée un élément vide (div, span, qu'importe) de taille W*H avec le sprite en background, et on déplace la position du background de x;y.
Il ne s'agit donc pas à proprement parler d'une image mais d'un élément avec un background spécifique.
Bien sûr, cette technique est à réserver uniquement aux éléments de design (boutons, bordures, icônes...) car cela casse l'interaction qu'on peut avoir avec des images (comme tout le menu contextuel d'une image obtenu par un simple clic droit).

Mais cette technique peut justement être utilisée pour protéger (superficiellement) une image : on en fait un background d'un élément de taille identique, et dans cet élément on met une image composée d'un pixel transparent 1x1 étiré aux dimensions de l'image. Un clic droit pour enregistrer l'image, et on se retrouve en fait avec un pixel transparent. Ça n'empêche absolument pas de récupérer l'image si on creuse deux secondes, mais c'est plus élégant que les scripts JS bloqueurs de clic droit.
avatar
« Nous avons propagé sur Extranet une histoire fabriquée de toutes pièces selon laquelle une certaine disposition d'étoiles, vue depuis la planète d'origine des butariens, formaient le visage d'une déesse galarienne.
Sans chercher à vérifier ces informations, certains ont décrété que c'était la preuve de l'existence de la déesse. Ceux qui notaient le manque de preuves se faisaient attaquer. »

Legion, geth trolleur à portée galactique

2859

Tu choisis dans le CSS les coordonnées de début et la taille h:v de ton bout d'image... en gros comme avec les planches de graphismes des jv des années 80 cheeky
C'est super méta chiant, en vrai : quand tu changes une icône, tu galères à mort ; tu remplaces la précédente, puis à la fin, le créa te dit qu'en fait il la faut quand-même, mais pas pareil... tu passes ton temps à t'emmerder pour la maintenance. Enfin, avis perso.

(cross)
avatar

2860

non c'est la realitée
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

2861

Mais il existe de nombreux générateurs sur internet : tu envoies les images, le générateur condense tout cela en une seule image, et crée les classes & coordonnées dans le fichier CSS à partir des dimensions de chaque image uploadée et sa position sur le résultat final.
Il est vrai que faire cela à la main est chiant comme la mort, avec ces outils tu as juste à actualiser l'image finale et le bloc de CSS qui définit les sprites.
avatar
« Nous avons propagé sur Extranet une histoire fabriquée de toutes pièces selon laquelle une certaine disposition d'étoiles, vue depuis la planète d'origine des butariens, formaient le visage d'une déesse galarienne.
Sans chercher à vérifier ces informations, certains ont décrété que c'était la preuve de l'existence de la déesse. Ceux qui notaient le manque de preuves se faisaient attaquer. »

Legion, geth trolleur à portée galactique

2862

ah ok c'est vrai que background permet de choisir une position smile

2863

Meowcate (./2858) :
En fait, au lieu de mettre une image de dimension W*H, on crée un élément vide (div, span, qu'importe) de taille W*H avec le sprite en background, et on déplace la position du background de x;y.
Je ne sais pas si c'est le hasard mais les sites que j'ai connus qui ramaient le plus étaient des sites utilisant cette technique.
Je me demande si le navigateur n'instanciait pas en mémoire n fois la grande image de sprites...

2864

Il n'y a pas de raisons à cela. En revanche, cette technique a deux inconvénients qui peuvent ralentir un site (mais l'impact n'est pas énorme après la mise en cache) :
  • Au lieu de petites images chargées l'une après l'autre, on a une grosse image unique, ce qui fait qu'au lieu d'avoir le design qui se charge progressivement, on doit attendre un chargement complet. Cet aspect peut être atténué avec des images enregistrées justement en "progressif" (dont la qualité de base est médiocre mais légère et qui s'améliore au fur et à mesure du chargement.
  • Paradoxe de cette "optimisation", on charge généralement une image pour l'ensemble du site, ce qui peut faire que la plupart des sprites de l'image chargée ne sont pas utilisés sur la page en cours.
avatar
« Nous avons propagé sur Extranet une histoire fabriquée de toutes pièces selon laquelle une certaine disposition d'étoiles, vue depuis la planète d'origine des butariens, formaient le visage d'une déesse galarienne.
Sans chercher à vérifier ces informations, certains ont décrété que c'était la preuve de l'existence de la déesse. Ceux qui notaient le manque de preuves se faisaient attaquer. »

Legion, geth trolleur à portée galactique

2865

Je suis moyennement convaincu également par ces recommandations... Combiner tous les fichiers CSS et JS ? Bof, la combinatoire dépasse largement les 5 ou 6 fichiers que j'inclue quand c'est nécessaire et qui ne font au final que 5 ou 6 entrées en cache. Générer 30 fichiers combinés ou plus ne me semble pas une super idée : il va falloir davantage de requêtes avant de les avoir en cache et ça va occuper plus de place dans les navigateurs.

Pour les planches de sprites je n'ai jamais essayé et peut-être que c'est intéressant. Effectivement en théorie ça force à télécharger pas mal d'images quand seulement quelques-unes sont réellement utilisées, mais d'un autre côté on parle d'une requête qui va faire dans les 20ko donc le temps de download est négligeable par rapport à l'aller-retour réseau.

Il y a quoi comme solution connue pour générer des spritesheets ? Je viens d'aller regarder sur npm mais comme d'habitude ça m'a donné 850 résultats non triés avec chacun un tas de dépendances délirantes genre GTK, ImageMagick, Python ou que sais-je encore :/
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

2866

ImageMagik a un utilitaire en ligne de commande pour les générer ( http://www.imagemagick.org/Usage/montage/ ) donc cette dépendance ne semble pas délirante.

2867

Tu as beaucoup en ligne, par exemple Stitches dont tu peux utiliser la démo ou récupérer le code pour faire tourner le générateur en local. Il suffit d'ajouter les images au générateur, et il t'en sort le nécessaire.

Autre chose tant qu'on recommande, même si on est une vilaine faignasse, on ne dépend JAMAIS de fichiers externes (de services externes à la limite). On ne pointe par vers jQuery, on le télécharge et on le stocke. On n'@import pas des polices, on les garde sur son site. Non seulement cela fait des requêtes distantes qui rajoute au ralentissement général, mais il suffit que la ressource distante devienne inaccessible pour avoir le nez dans l'eau.
avatar
« Nous avons propagé sur Extranet une histoire fabriquée de toutes pièces selon laquelle une certaine disposition d'étoiles, vue depuis la planète d'origine des butariens, formaient le visage d'une déesse galarienne.
Sans chercher à vérifier ces informations, certains ont décrété que c'était la preuve de l'existence de la déesse. Ceux qui notaient le manque de preuves se faisaient attaquer. »

Legion, geth trolleur à portée galactique

2868

Et je suis d'accord avec toi, mais c'est marrant parce que ce n'est pas ce que recommande la majorité qui te dit "non mais pour améliorer votre site, allez chercher le fichier sur X ou Y" (genre le dépôt Google)
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

2869

./2866 : mais du coup c'est ImageMagick qui fait tout le boulot, ça n'est pas simplement une dépendance : j'aurais presque aussi vite fait de l'utiliser directement lui et rien d'autre smile (bon j'exagère : il ne génère probablement pas la CSS)
./2867 : j'étais tombé sur celui-ci, mais a priori c'est une appli web donc c'est prévu pour générer mes spritesheets à la main, et rebelote à chaque fois que je veux ajouter ou changer une image ? :/
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

2870

Cela ne me semble pas si contraignant : garde les fichiers de ton spritesheet dans un dossier dédié à cela, et sépare le CSS (fichier séparé ou bloc de code distinguable). Quand tu veux afficher une ou plusieurs images, il te suffit alors de renvoyer toutes les images groupées dans le générateur, de changer le spritesheet généré, et de remplacer le bloc de CSS par celui créé. Comme les classes générées dépendent du nom de tes images d'origine, il n'y aura pas d'incidence sur ton code HTML, même si les images sont regroupées de façon différente qu'à la version précédente.
avatar
« Nous avons propagé sur Extranet une histoire fabriquée de toutes pièces selon laquelle une certaine disposition d'étoiles, vue depuis la planète d'origine des butariens, formaient le visage d'une déesse galarienne.
Sans chercher à vérifier ces informations, certains ont décrété que c'était la preuve de l'existence de la déesse. Ceux qui notaient le manque de preuves se faisaient attaquer. »

Legion, geth trolleur à portée galactique

2871

C'est quand même hyper chiant, toutes les autres transformations que j'effectue sur les fichiers statiques sont automatiques et c'est pour moi une condition nécessaire pour utiliser les outils associés. S'il faut générer des trucs à la main à chaque fois que je touche à une image je pense que je vais passer mon chemin :/
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

2872

Ça date, mais je n'en avais pas entendu parler : à l'instar de ce qui se passe sur les OS mobiles, Chrome décharge désormais automatiquement les onglets "inutilisés" pour libérer de la mémoire :
https://developers.google.com/web/updates/2015/09/tab-discarding

Pourquoi pas, mais j'ai quelques doutes sur la capacité du système à détecter automatiquement quels sont les onglets "inutilisés", et surtout à restaurer complètement l'état de la page (qui peut être assez complexe) quand on réactivera l'onglet : si je comprends bien, pour le moment, c'est imparfait...

À en croire les commentaires, pas mal de gens ne sont pas emballés.
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

2873

Perso j'utilisais déjà un plugin pour ça depuis un moment. Bien sûr ça perd l'état de la page, et ne conserve que l'url.
En pratique je n'ai jamais été ennuyé.

2874

Oh punaise... je ne supporte pas ça sur mon mobile (à tel point que j'ai mˆeme cherché à activer le swap pour qu'il tape dans la flash plutˆot qu'il ne décharge la mémoire).
Après, ça peut quand-mˆeme avoir son intérˆet, c'est vrai : il m'arrive de redémarrer Fx juste pour libérer la mémoire des onglets inutilisés (je redémarre avec les anciens onglets), parce qu'à ce moment-là, les onglets ne sont chargés en mémoire qu'à leur première sélection.
avatar

2875

(qu'est-il arrivé à tes accents circonflexes ? c'est la nouvelle réforme de l'orthographe ? grin)
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

2876

(changement de layout ou changement de clavier ^^)

2877

(Mon PC sous Windows piloté depuis mon terminal Android qui dispose d'un clavier physique que le client RDP de MS gère mal ˆˆ)
avatar

2878

#simple#

je déteste ca aussi sur firefox mobile, genre t'es dans le RER et PAF la page préchargée a disparu neutral

2879

epee j'ai le même problème avec Safari Mobile sad
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

2880

ha? je n'ai jamis remarqué avec safari
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.