28-11-2015, 12:43 PM
(Modification du message : 28-11-2015, 12:43 PM par Sephi-Chan.)
(28-11-2015, 02:17 AM)Argorate a écrit : Il gagne en rapidité à cause de la règle des 2 requêtes http en parallèle maximum, si tu as 10 icones, il en téléchargera que deux et devra attendre qu'une se finisse pour lancer les autres. Le sprite résous pour partie ce problème.
Cela fait bien longtemps que les navigateurs ne se limitent pas à 2 requêtes HTTP en parallèle. La moyenne semble plutôt être à 6 requêtes parallèles par domaine avec une limite globale (allant de 10 à 60). On retrouve ici l'intérêt d'avoir plusieurs noms de domaines vers le même site, pour les assets.
(28-11-2015, 02:17 AM)Argorate a écrit : Le rendu progressif n'a aucun intérêt de mon point de vue : le jeu/site est afficher ou il ne l'ai pas (je me fiche de tout ce qui est intermédiaire, ce n'est pas un état satisfaisant du système).
Pourtant, un téléchargement progressif du contenu utile est intéressant et donne une meilleure expérience à l'utilisateur : il voit l'interface apparaître rapidement car le fichier est vite téléchargé. La majorité du sprite n'est pas utile à un nouveau visiteur qui arrive sur la page, car il contient beaucoup de choses utiles seulement à ceux qui ont lancé le jeu à proprement parler. C'est pourquoi il est parfois plus stratégique de créer plusieurs sprites : un pour l'interface des pages hors-jeu, un pour le jeu en lui-même, etc. Ça évite en plus d'invalider tout le sprite pour certains changement qui seraient autrement cantonnés à leur sprite.
(28-11-2015, 02:17 AM)Argorate a écrit :(26-11-2015, 08:18 PM)Sephi-Chan a écrit : Avec HTTP 2 (et déjà SPDY), les sprites appartiendront au passé, tout comme la concaténation.
Si aujourd'hui tu n'utilises pas de générateurs, ce n'est même pas la peine de s'y mettre.
Tu peux développer? ça m’intéresse
HTTP2 (déjà disponible sur certains navigateurs) supporte plein de fonctionnalités qui rendent la majorité des pratiques d'optimisation caduques. Parmi ces fonctionnalités : la compression des headers (qui réduit leur volume de 85%), le multiplexage de plusieurs requêtes dans une seule connexion, le push d'assets depuis le serveur (ça donne donc un contrôle sur le cache du navigateur), etc.
Le gros avantage de tout ça, c'est que ça devient bien plus simple et intelligent et qu'on peut se reposer sur le navigateur sans trop se poser de questions. Ça nous évite d'invalider 500 Ko de Javascript juste pour un peu de code qui change (c'est aussi pour ça que je séparais le code Javascript des frameworks et le code de mon application dans 2 fichiers concaténés et minifiés séparés).
Les sprites PNG restent intéressants pour regrouper de petites images où la somme des poids est plus importante que le sprite qui les rassemble. Mais à nouveau, ça pose la question du regroupement stratégique dans des sprites. Je pense qu'il est plus pertinent de lâcher du leste et de laisser le navigateur récupérer ce dont il a besoin : il le sait mieux que nous.