Latence et CDN

La latence est une des composantes qui pénalise le plus les performances actuellement. Les connexions Internet françaises se font plutôt à haut débit, et même un mauvais wifi laisse finalement passer assez de trafic pour que ce soit viable. Par contre, avec l’explosion du nombre de composants par page, la latence est probablement le facteur […]

Préchargement des images CSS avec Jquery

Dans le préchargement l’idée est de faire travailler le navigateur avant que l’utilisateur ne demande les documents pour que ce soit quasiment instantané ensuite. On attend la fin de chargement de la page, et on lance par avance le téléchargement de plusieurs liens dont on pense qu’ils serviront plus tard. C’est très intéressant pour quelques […]

Cache central des bibliothèques javascript

On m’a posé quelques fois la question alors voici la réponse : Oui. Oui il faut, quand vous le pouvez, utiliser les liens centralisés de Google ou de Yahoo pour vos bibliothèques javascript. Je parle de ne pas recopier jquery ou yui directement sur vos serveurs, mais d’utiliser les liens centralisés proposés par les deux […]

Quelques outils en ligne

Je vous avais présenté quelques outils, aujourd’hui en voilà trois autres, en ligne. Le concept de ces outils est le même : on prend une URL, on lance la page, et on trace la cascade des requêtes HTTP avec quelques statistiques. C’est là qu’on voit le temps pris par chaque composant, par la somme des […]

Analyse d’une requête HTTP – serveur et réseau

On parle de temps, de performance, mais finalement que mesure t-on ? La question n’est pas inutile puisque pour une même requête il y a bien trois étape visibles du point de vue du visiteur, cinq du point de vue du navigateur et autant pour le serveur. Alors, que mesure t-on ?

Limitations du cache Safari

Pour l’iphone Safari a de sérieuses limitations sur le cache. Yahoo! avait déjà débusqué les limites de la version iphone : les fichiers ne doivent pas dépasser 25 ko une fois décompressés et le total doit être strictement inférieur à 500 ko. Ces limitations semblent raisonnables pour un téléphone mais ce téléphone navigue souvent sur […]

Pages d’erreur

Rappelez-vous : cool URIs don’t change (les URIs sympa ne changent pas), et mieux, autant que possible elle ne disparaissent pas non plus. Reste que beaucoup d’éditeurs ne tiennent pas compte de cette recommandation, et que les développeurs ne peuvent s’abstenir de faire des erreurs quand ils font des liens.  Ces pages d’erreurs donnent une piètre […]

CSS et @import

Il y a peu on a vu fleurir des liens vers des propositions au groupe de travail CSS. Et en particulier une proposition de variables CSS. Ces variables peuvent être changées dynamiquement en javascript. Le rendu est alors refait avec la nouvelle valeur, partout où la variable était utilisée. La question des performances Si vous […]

Compression avant transfert

Après avoir parlé de minimisation, il est temps de parler de compression, la règle 4 des recommandations de l’équipe performance Yahoo!. Trop gros Une part importantes des téléchargements sont réalisés sur de simples fichiers textes : HTML, javascript, CSS, XML et JSON. Mis côte à côte ils peuvent représenter un poids non négligeable. C’est particulièrement vrai […]

Pipelining : enchaîner les requêtes HTTP

Le pipelining HTTP c’est faire gérer au serveur une file de requêtes. Le navigateur envoie plusieurs requêtes à la suite les unes des autres sans attendre la réponse du serveur. Le serveur renvoie alors les réponses dès qu’il les a, potentiellement en parallèle aux requêtes du navigateur. Non seulement on utilise le principe de la connexion […]

Keep-alive et connexions persistantes

La latence réseau a un impact très important sur les performances. Si les ressources sont zippées, que vos images sont correctement compressées, et que les fichiers textes sont minimisés, la latence peut devenir presque plus pénalisante que les téléchargements eux même.

Limitation du nombre de requêtes

Nos navigateurs sont performants, ils savent gérer plusieurs téléchargements en parallèle. Ca nous permet de palier les serveurs lents, et d’optimiser le réseau. Le temps qu’on se connecte sur un serveur, qu’on fasse une requête DNS, le réseau reste occupé avec d’autres téléchargements. Sans limite ? On ne peut pas non plus tout télécharger en […]

Javascript à sa place

Chaque fois que je parle de reléguer les codes javascript en fin de page, je vois une moue sur le visage de mon interlocuteur. Mettre le javascript dans le <body> du document, et encore plus à la fin de celui-ci, et souvent préjugé comme une pratique « sale ». Laissez moi vous convaincre du contraire.

Impact de la latence réseau

Après avoir parlé hier des stratégies d’optimisation, parlons rapidement de ce qu’il y a à gagner. Je me concentre sur la stratégie la plus fréquente : tenter de regrouper nos ressources dans des gros fichiers globaux. Pour l’exemple, j’ai arbitrairement utilisé le blog de Frédéric de Villamil. La page semble assez rapide à charger. Concrêtement, […]