<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Performance web &#187; Microsoft</title>
	<atom:link href="http://performance.survol.fr/avec/microsoft/feed/" rel="self" type="application/rss+xml" />
	<link>http://performance.survol.fr</link>
	<description>Quelques mots pour des sites web rapides</description>
	<lastBuildDate>Fri, 18 Jun 2010 12:47:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Compte rendu des conférences Velocity &#8211; Steve Souders</title>
		<link>http://performance.survol.fr/2009/07/compte-rendu-des-conferences-velocity-steve-souders/</link>
		<comments>http://performance.survol.fr/2009/07/compte-rendu-des-conferences-velocity-steve-souders/#comments</comments>
		<pubDate>Mon, 27 Jul 2009 10:00:57 +0000</pubDate>
		<dc:creator>Éric</dc:creator>
				<category><![CDATA[Performance]]></category>
		<category><![CDATA[AOL]]></category>
		<category><![CDATA[argumentaire]]></category>
		<category><![CDATA[Bing]]></category>
		<category><![CDATA[chiffres]]></category>
		<category><![CDATA[exemples]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Shopzilla]]></category>
		<category><![CDATA[Steve Souders]]></category>
		<category><![CDATA[velocity]]></category>

		<guid isPermaLink="false">http://performance.survol.fr/?p=673</guid>
		<description><![CDATA[S&#8217;il y a une série de conférences auxquelles vous devez assister sur les performances, ce sont les conférences Velocity. La seconde édition a eu lieu en juin dernier, je regrette que l&#8217;éloignement m&#8217;ait contraint à ne pas espérer y aller, &#8230; <a href="http://performance.survol.fr/2009/07/compte-rendu-des-conferences-velocity-steve-souders/">Continuer la lecture <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>S&#8217;il y a une série de conférences auxquelles vous devez assister sur les performances, ce sont les conférences Velocity. La seconde édition a eu lieu en juin dernier, je regrette que l&#8217;éloignement m&#8217;ait contraint à ne pas espérer y aller, mais heureusement il y a des présentations en ligne et des résumés.</p>
<p>C&#8217;est <a href="http://radar.oreilly.com/2009/07/velocity-making-your-site-fast.html">le résumé de Steve Souders</a> qui a été publié récemment. On y retrouve quatre affirmations tirées des conférences. Toutes parlent d&#8217;une corrélation importante entre les performances et le trafic ou le business du site web :<span id="more-673"></span></p>
<h3>Microsoft</h3>
<p>Microsoft a trouvé qu&#8217;un ralentissement de deux secondes implique une réduction 1,8 % du nombre de recherches par utilisateur. Cela semble peu, mais c&#8217;est accompagné aussi d&#8217;une réduction de 4,3 % du revenu par utilisateur, et là ça fait moins rire. Autrement formulé : un utilisateur clique moins sur les publicités d&#8217;un site lent que sur les publicités d&#8217;un site rapide.</p>
<p>Ça rejoint d&#8217;ailleurs Google qui prend en compte la performance dans son &laquo;&nbsp;quality score&nbsp;&raquo; pour adword (en gros un site lent paiera plus cher ses publicités parce que le pourcentage de clic est plus faible) et c&#8217;est finalement logique, on hésitera à partir ailleurs et à se laisser tenter si on remet pas en cause une longue et pénible session de navigation qui nous a permis d&#8217;arriver jusqu&#8217;à la page en cours. Si la navigation est rapide on hésitera moins à partir dans diverses directions pour revenir ensuite.</p>
<p>Avis aux sites qui se rémunèrent sur la pub, et aux agences de comm qui font des publicités ultra lentes sous prétexte d&#8217;avoir une meilleur qualité d&#8217;image.</p>
<h3>Google</h3>
<p>Google lui a affirmé que 400 ms diminuait de 0,59 % le nombre de recherches par utilisateur. Là je suis un peu étonné parce que finalement ce n&#8217;est pas très significatif (sauf à ralentir de plusieurs secondes, et encore) et parce que <a href="http://glinden.blogspot.com/2006/11/marissa-mayer-at-web-20.html">leur dernière communication à ce sujet</a> était d&#8217;un tout autre ordre de grandeur. Ils refont d&#8217;ailleurs état de chiffres bien plus importants dans une autre conférence dans le même événement. J&#8217;attends donc de lire leur communication complètement pour juger de ce que cela implique et de comment comprendre leurs différents chiffres qui ne semblent pas dire la même chose.</p>
<p>Par contre Google fait état d&#8217;un fait d&#8217;importance : les utilisateurs qui ont subit ce ralentissement minime de 400 ms continuent de faire moins de recherche sur le long terme même après que ce ralentissement soit supprimé. En gros vos performances actuelles vous impactent non seulement maintenant mais aussi dans le futur. Le chiffre avancé parait faible mais il a beaucoup d&#8217;implications et le contexte de Google est très particulier, j&#8217;y reviendrai donc certainement dans un billet dédié.</p>
<h3>AOL</h3>
<p>Sur le réseau AOL les 10 % d&#8217;utilisateurs qui ont les meilleures performances visitent moitié plus de page par session que les 10 % avec les moins bonnes performances.</p>
<p>Autant dire que cela a un impact sur le trafic des sites, et donc forcément la conversion en clic publicitaires ou en achats. Le chiffre est important mais il peut revêtir plusieurs formes, je vous en dirai plus quand j&#8217;aurai là aussi lu leur présentation à tête reposée.</p>
<h3>Shopzilla</h3>
<p>Enfin, Shopzilla a réduit le temps de chargement de 7 secondes à 2 secondes. C&#8217;est une différence importante et ça a donc du nécessiter des efforts conséquents, mais le résultat est là : 25 % d&#8217;augmentation de trafic, 7 à 12 % d&#8217;augmentation sur les revenus, et 50 % de réduction sur les coûts matériels.</p>
<p>À défaut d&#8217;être une formule magique, investir dans l&#8217;amélioration de la performance *doit* être considéré après lecture de ces chiffres. Payer une étude quelques milliers d&#8217;euros et un développeur interne pendant quelques jours/semaines pour corriger ce qui a été trouvé, cela peut assez facilement se révéler un investissement payant à court terme.</p>
]]></content:encoded>
			<wfw:commentRss>http://performance.survol.fr/2009/07/compte-rendu-des-conferences-velocity-steve-souders/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Google SDCH et HTTP</title>
		<link>http://performance.survol.fr/2009/02/google-sdch-et-http/</link>
		<comments>http://performance.survol.fr/2009/02/google-sdch-et-http/#comments</comments>
		<pubDate>Thu, 12 Feb 2009 11:00:50 +0000</pubDate>
		<dc:creator>Éric</dc:creator>
				<category><![CDATA[Performance]]></category>
		<category><![CDATA[communication]]></category>
		<category><![CDATA[compression]]></category>
		<category><![CDATA[conférence]]></category>
		<category><![CDATA[etag]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[Google toolbar]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Microsoft Internet Explorer]]></category>
		<category><![CDATA[sdch]]></category>
		<category><![CDATA[serveur]]></category>
		<category><![CDATA[velocity]]></category>

		<guid isPermaLink="false">http://performance.survol.fr/?p=401</guid>
		<description><![CDATA[On vous a dit de compresser vos échanges HTTP avec gzip ou deflate, des les identifier avec des ETag, mais pouvons nous faire mieux ? C&#8217;est la question abordée par certaines équipes de Google (slides disponibles) en juin dernier aux &#8230; <a href="http://performance.survol.fr/2009/02/google-sdch-et-http/">Continuer la lecture <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>On vous a dit de c<a href="http://performance.survol.fr/2008/04/compression-avant-transfert/">ompresser vos échanges HTTP avec gzip ou deflate</a>, des les <a href="http://performance.survol.fr/2008/06/desactiver-les-etags/">identifier avec des ETag</a>, mais pouvons nous faire mieux ? C&#8217;est <a href="http://en.oreilly.com/velocity2008/public/schedule/detail/2598">la question abordée par certaines équipes de Google</a> (<a href="http://assets.en.oreilly.com/1/event/7/Shared%20Dictionary%20Compression%20Over%20HTTP%20Presentation.ppt">slides disponibles</a>) en juin dernier aux <a href="http://en.oreilly.com/velocity2008/">conférences Velocity 2008</a>. Ils partent du principe qu&#8217;une page web est composée de plusieurs éléments, dont certains sont communs à plusieurs pages et ne nécessitent pas d&#8217;être renvoyés.</p>
<p>Google propose donc <a href="http://sdch.googlegroups.com/web/Shared_Dictionary_Compression_over_HTTP.pdf?gda=Znx6Cl0AAABP1YGtttuzY8Xt5fWEme6RW917cp3OCWgHAcxHpzR4UA12alwZyuoqsE-BiY88xfLrk0HuZRJs1gcUl6mErWX6yPI8Lq4cE5IelfQO528z8OU2_747KStNgkfeVUa7Znk">un codage supplémentaire pour HTTP qui s&#8217;appelle SDCH</a>,<span id="more-401"></span> et qui peut s&#8217;ajouter avant gzip ou deflate. Le serveur découpe sa page en paquets, qui peuvent chacun avoir des métadonnées et une expiration explicite. Le tout est stocké dans un dictionnaire du côté du navigateur, un peu comme les cookies actuellement. Quand le navigateur demande une page il envoie les identifiants de paquet qu&#8217;il connaît déjà, le serveur peut donc se contenter de compléter ce qui manque. On a donc le même fonctionnement que les Etag du point de vue de la négociation.</p>
<p>Les entêtes HTTP en jeu sont <code>Avail-Dictionnary</code> (l&#8217;équivalent de <code>Etag</code> pour SDCH) et <code>X-SDHC</code> (pour déclarer la version et l&#8217;implémentation de SDCH utilisée) du côté du navigateur, et <code>X-SDCH-Dictionary</code> du côté du serveur.</p>
<p>Reste que cela implique que la réponse du serveur soit codée suivant une forme bien particulière, non compatible avec les anciens clients HTTP. Google a donc prévu une auto-négociation et la réutilisation de l&#8217;entête Accept-Encoding. Grâce à cela, les navigateurs qui le peuvent auront un contenu SDCH puis compressé par gzip, les autres se contenteront du gzip.</p>
<p>Si vous voyez passer un <code>Accept-Encoding: sdch, gzip</code> c&#8217;est que votre navigateur supporte ce codage. Si en plus vous voyez une réponse <code>Content-Encoding: sdch, gzip</code> c&#8217;est que le serveur a bien compris que vous supportiez SDCH et va utiliser ce codage.</p>
<p> Je n&#8217;ai vu aucun mouvement ni aucune volonté de mouvement de la part de Mozilla, en fait depuis la communication de Google l&#8217;idée n&#8217;a pas l&#8217;air d&#8217;avoir fait recette où que ce soit. Seul <a href="http://groups.google.com/group/SDCH">un groupe de discussion</a>, quasi vide, a fait suite à la communication de juin 2008.</p>
<p><a href="http://groups.google.com/group/chromium-dev/browse_thread/thread/f3e9b8f3ea603129?pli=1">Chrome a un premier support de SDCH</a> (non activé par défaut pour la version publique actuelle) mais ça ne changera pas la face du monde. Le point intéressant est toutefois que <a href="http://googlesystem.blogspot.com/2009/02/google-search-pages-load-faster-in.html">SDCH est automatiquement intégré à Microsoft Internet Explorer si la Google toolbar est installée</a>. La page d&#8217;aide de Google indique <a href="http://www.google.com/support/toolbar/bin/answer.py?hl=en&#038;answer=113087">comment désactiver tout ça</a>. </p>
<p>Si l&#8217;idée peut être intéressante, je suis un peu étonné que Google tente de l&#8217;imposer de lui-même sans avoir le support d&#8217;au moins un intervenant (Mozilla, Opera, Apple, Microsoft) ou une publication normative officielle de type RFC. La seule chose qui sauve cet unilatéralisme est la présence d&#8217;une version dans l&#8217;auto-négociation (donc on pourra gérer d&#8217;éventuelles évolutions dans les spécifications si jamais tout le monde se met autour de la table pour en rediscuter).</p>
]]></content:encoded>
			<wfw:commentRss>http://performance.survol.fr/2009/02/google-sdch-et-http/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Quel avenir ?</title>
		<link>http://performance.survol.fr/2008/12/quel-avenir/</link>
		<comments>http://performance.survol.fr/2008/12/quel-avenir/#comments</comments>
		<pubDate>Tue, 02 Dec 2008 11:00:34 +0000</pubDate>
		<dc:creator>Éric</dc:creator>
				<category><![CDATA[Performance]]></category>
		<category><![CDATA[compression]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[John Resig]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Microsoft Internet Explorer]]></category>
		<category><![CDATA[mozilla]]></category>
		<category><![CDATA[opera]]></category>
		<category><![CDATA[parallélisation]]></category>
		<category><![CDATA[pipelining]]></category>
		<category><![CDATA[Steve Souders]]></category>
		<category><![CDATA[webkit]]></category>

		<guid isPermaLink="false">http://performance.survol.fr/?p=323</guid>
		<description><![CDATA[Vouloir optimiser le code et régler les performances, est-ce un sujet qui sera obsolète bientôt ? La question peut-être posée autrement : n&#8217;est-on pas en train de compenser les défauts des navigateurs dans quelques millions de sites avec des résultats &#8230; <a href="http://performance.survol.fr/2008/12/quel-avenir/">Continuer la lecture <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Vouloir optimiser le code et régler les performances, est-ce un sujet qui sera obsolète bientôt ?</p>
<p>La question peut-être posée autrement : n&#8217;est-on pas en train de compenser les défauts des navigateurs dans quelques millions de sites avec des résultats discutables au lieu de fixer les quelques navigateurs ?</p>
<h3>Sus au navigateur !</h3>
<p>Ma première réponse habituelle est de dire que si, nous sommes, pour bonne partie, en train de compenser les manques et les défauts de nos navigateurs. C&#8217;est le cas quand on parle d&#8217;agréger les contenus (au lieu d&#8217;utiliser le <a href="http://performance.survol.fr/2008/04/pipelining-enchainer-les-requetes-http/">HTTP pipelining</a>), quand on parle de <a href="http://performance.survol.fr/2008/04/javascript-a-sa-place/">déplacer les javascript en fin de document</a> (au lieu de <a href="http://performance.survol.fr/2008/08/javascript-non-bloquant/">laisser le navigateur les télécharger en parallèle</a>) ou quand on parle de <a href="http://performance.survol.fr/2008/04/limitation-du-nombre-de-requetes/">séparer les contenus statiques sur plusieurs domaines</a> (pour exploiter au mieux la configuration de nos navigateurs).</p>
<h3>Vive le navigateur !</h3>
<p>Heureusement il y a beaucoup d&#8217;activité actuellement chez les éditeurs logiciels. Opera, Apple/Webkit, Mozilla et même Microsoft font des efforts. La génération qui arrive va avoir des navigateurs avec beaucoup moins de goulots d&#8217;étranglement côté performances, et un ressenti de vitesse non atteint jusque là : Les javascript vont enfin pouvoir se télécharger en parallèle et ne plus bloquer le rendu, on ouvre plus de requêtes simultanées par serveur, et on tente quelques optimisations.</p>
<p>C&#8217;est Steve Souders qui nous propose <a href="http://stevesouders.com/ua/">un petit tableau récapitulatif sur les possibilités de cette nouvelle génération de navigateurs</a> (que <a href="http://ejohn.org/blog/browser-page-load-performance">John Resig commente</a>). Tout n&#8217;est pas parfait mais vous noterez intuitivement une bonne dose de vert pour Microsoft Internet Explorer 8, Minefield 3.1 (qui est la version de Firefox en développement), et WebKit 4. Les cases faisant la différence entre ces trois là sont liées aux redirections et au prechargement, ce sont certainement les colonnes les moins importantes de la grille. Opera reste de côté tant qu&#8217;il ne permet pas de paralléliser les scripts, mais il y a tout lieu de penser que cela va s&#8217;arranger.</p>
<h3>Agissons maintenant</h3>
<p>Tout va bien, arrêtons tout parce que ça va être corrigé sur les navigateurs ? Surtout pas ! Tout simplement parce que vos utilisateurs et votre site ne peuvent pas attendre les multiples années nécessaires à ce que le parc des navigateurs soit mis à jour.</p>
<p>Bref, nous n&#8217;avons pas le choix. Le visiteur se moque de savoir que c&#8217;est la faute du navigateur, qu&#8217;un plus récent est en préparation, ou même qu&#8217;un plus récent est disponible en téléchargement. Lui voit que votre site est lent, agaçant, et peut être qu&#8217;en allant chez le concurrent ça sera mieux &#8211; à navigateur égal.</p>
<p>En attendant que toutes les versions actuelles des navigateurs soient remplacées, vous devez agir, quitte à agir en pompier pour corriger les défaillances de ces derniers.</p>
<h3>Surtout que c&#8217;est un peu notre faute</h3>
<p>Mais n&#8217;oubliez pas, derrière cette grille il y a encore beaucoup de choses qui sont de la responsabilité de l&#8217;intégrateur web ou de l&#8217;administrateur web. Je parle de cache, d&#8217;agrégation de contenu, de compression http, d&#8217;images en sprites, d&#8217;optimisations javascript, ou simplement d&#8217;ordonnancement des composants.</p>
<p>Ne croyez pas que même avec ces superbes moteurs de navigateur qui arrivent, la performance deviendra un sujet obsolète.</p>
]]></content:encoded>
			<wfw:commentRss>http://performance.survol.fr/2008/12/quel-avenir/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Mode de rendu des tableaux</title>
		<link>http://performance.survol.fr/2008/09/mode-de-rendu-des-tableaux/</link>
		<comments>http://performance.survol.fr/2008/09/mode-de-rendu-des-tableaux/#comments</comments>
		<pubDate>Mon, 29 Sep 2008 10:00:24 +0000</pubDate>
		<dc:creator>Éric</dc:creator>
				<category><![CDATA[Performance]]></category>
		<category><![CDATA[Building High Performance HTML Pages]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[mesure]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[rendu]]></category>
		<category><![CDATA[table-layout]]></category>
		<category><![CDATA[tableau]]></category>

		<guid isPermaLink="false">http://performance.survol.fr/?p=191</guid>
		<description><![CDATA[Pour ceux qui doutes Microsoft en parle dans son article sur les performances, mais ce point là est généralement bien accepté car la différence de performance est parfois flagrante. Sitepoint en parle aussi d&#8217;ailleurs : Le mode de rendu des tableaux impacte &#8230; <a href="http://performance.survol.fr/2008/09/mode-de-rendu-des-tableaux/">Continuer la lecture <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Pour ceux qui doutes Microsoft en parle <a href="http://msdn.microsoft.com/en-us/library/ms533020(VS.85).aspx#Use_Fixed-Size_Tables">dans son article sur les performances</a>, mais ce point là est généralement bien accepté car la différence de performance est parfois flagrante. <a href="http://www.sitepoint.com/blogs/2008/08/05/mining-the-sitepoint-css-reference/">Sitepoint en parle aussi</a> d&#8217;ailleurs : Le mode de rendu des tableaux impacte les performances.<span id="more-191"></span></p>
<h3>Rendu fixe ou dynamique</h3>
<p>Les tableaux HTML ont deux modes de rendu. Le premier mode utilise un calcul simple pour déterminer la taille horizontale des différentes cellules. On regarde la taille appliquée à la colonne, ou éventuellement à la première cellule de la colonne. Les cellules fusionnées ou sans taille explicite se répartissent à égalité la place restante. On parle d&#8217;un cadre fixe.</p>
<p>Le second mode rendu utilise un algorithme bien plus complexe. Il utilise le contenu de chaque cellule pour décider quelle taille elle prendra. On prend en compte la quantité de contenu, la taille souhaitable pour la cellule, et la taille minimum. L&#8217;algorithme est complexe, il nécessite de travailler sur des parties complexes du rendu de chaque cellule, il nécessite de recalculer le rendu complet du tableau dès qu&#8217;un contenu change dans une cellule ou au fur et à mesure que le HTML est téléchargé. On parle là d&#8217;un cadre automatique, ou dynamique.</p>
<h3>Les performances</h3>
<p>Vous vous doutez bien que le navigateur ne fait pas le même travail dans les deux cas, et pas avec les mêmes performances. Malheureusement c&#8217;est ce second mode de rendu, le dynamique, qui est utilisé par défaut. <strong>Utilisez la directive CSS </strong><code><strong>table-layout:fixed</strong></code> et d&#8217;un coup votre navigateur sera soulagé.</p>
<p>Vous ne verrez pas la différence pour un petit tableau de chiffres mais si vous utilisez les tableaux pour déterminer l&#8217;agencement général de la page, si vous imbriquez des tableaux les uns dans les autres, si vous utilisez de très grands tableaux de données avec des centaines de lignes et colonnes, ou si vous utilisez du contenu complexe dynamique dans vos cellules, vous sentirez peut être la différence de performance.</p>
]]></content:encoded>
			<wfw:commentRss>http://performance.survol.fr/2008/09/mode-de-rendu-des-tableaux/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Erreurs de syntaxe</title>
		<link>http://performance.survol.fr/2008/09/erreurs-de-syntaxe/</link>
		<comments>http://performance.survol.fr/2008/09/erreurs-de-syntaxe/#comments</comments>
		<pubDate>Fri, 26 Sep 2008 10:00:02 +0000</pubDate>
		<dc:creator>Éric</dc:creator>
				<category><![CDATA[Performance]]></category>
		<category><![CDATA[Building High Performance HTML Pages]]></category>
		<category><![CDATA[dom]]></category>
		<category><![CDATA[erreur]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[rendu]]></category>
		<category><![CDATA[syntaxe]]></category>

		<guid isPermaLink="false">http://performance.survol.fr/?p=170</guid>
		<description><![CDATA[J&#8217;ai beaucoup parlé de CSS, de réseau, de javascript, et j&#8217;entend parfois dire que le HTML lui n&#8217;a aucune importance. Ce n&#8217;est malheureusement pas vrai. Il y a au moins trois points à regarder dans le HTML : la qualité &#8230; <a href="http://performance.survol.fr/2008/09/erreurs-de-syntaxe/">Continuer la lecture <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>J&#8217;ai beaucoup parlé de CSS, de réseau, de javascript, et j&#8217;entend parfois dire que le HTML lui n&#8217;a aucune importance. Ce n&#8217;est malheureusement pas vrai. Il y a au moins trois points à regarder dans le HTML : la qualité syntaxique du code, le mode de rendu des tableaux, et le nombre de noeuds DOM.</p>
<p>Je vous détaille le premier ici, les deux autres bénéficieront d&#8217;un billet dédié afin de mieux organiser les commentaires.<span id="more-170"></span></p>
<h3>La syntaxe HTML</h3>
<p>On vous dira par endroits que faire du code valide, suivant la norme HTML strictement, permettra d&#8217;améliorer les performances, d&#8217;améliorer votre référencement, et de faire le café. Ce n&#8217;est pas tout à fait vrai, mais un peu quand même (sauf pour le café).</p>
<p>Si vous avez des erreurs de syntaxe à répétition dans votre code, le navigateur va tenter de vous corriger. Suivant les cas il est possible qu&#8217;il arrête son rendu progressif et attende la fin du document pour savoir quelle correction appliquer et calculer l&#8217;ensemble de la page. Il est aussi possible qu&#8217;il tente une correction puis change d&#8217;avis quand il reçoit le reste du HTML, provoquant un recalcul du rendu. Dans les deux cas vous avez des problèmes de performance.</p>
<p>C&#8217;est d&#8217;ailleurs vrai même entre deux pages HTML bien formées : bien que facultatif, <strong>fermer toutes vos balises explicitement</strong> peut aider le navigateur à faire son travail plus facilement. C&#8217;est au point que Microsoft met ça en septième position dans son article <a href="http://msdn.microsoft.com/en-us/library/ms533020(VS.85).aspx#Close_Your_Tags">Building High Performance HTML Pages</a> (réaliser des pages HTML hautes performances).</p>
]]></content:encoded>
			<wfw:commentRss>http://performance.survol.fr/2008/09/erreurs-de-syntaxe/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Normalisez vos liens</title>
		<link>http://performance.survol.fr/2008/09/normalisez-vos-liens/</link>
		<comments>http://performance.survol.fr/2008/09/normalisez-vos-liens/#comments</comments>
		<pubDate>Tue, 02 Sep 2008 10:00:35 +0000</pubDate>
		<dc:creator>Éric</dc:creator>
				<category><![CDATA[Performance]]></category>
		<category><![CDATA[Building High Performance HTML Pages]]></category>
		<category><![CDATA[lien]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[msdn]]></category>
		<category><![CDATA[url]]></category>

		<guid isPermaLink="false">http://performance.survol.fr/?p=154</guid>
		<description><![CDATA[Je viens de croiser une liste de recommandations Microsoft pour la performance des sites web. On y retrouve plusieurs choses connues et une recommandation sur la cohérence des liens. La page MSDN donne l&#8217;exemple d&#8217;un même lien avec deux casses &#8230; <a href="http://performance.survol.fr/2008/09/normalisez-vos-liens/">Continuer la lecture <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Je viens de croiser une <a href="http://msdn.microsoft.com/en-us/library/ms533020(VS.85).aspx#Author_Hyperlinks_Consistently">liste de recommandations Microsoft pour la performance des sites web</a>. On y retrouve plusieurs choses connues et une recommandation sur la cohérence des liens. La page MSDN donne l&#8217;exemple d&#8217;un même lien avec deux casses différentes. Certains serveurs ignoreront la casse ou corrigeront le lien mais cela restera deux ressources différentes sur le client, avec des entrées séparées sur le cache, donc au moins une requête HTTP inutile.</p>
<p>Dans la réalité la plupart des serveurs web tournent avec un dérivé d&#8217;Unix où la casse est importante. Nous aurons un lien cassé et rien de plus. Par contre la recommandation, elle, est plus que pertinente :<span id="more-154"></span></p>
<p>Hésitez entre http://example.org/ et http://example.org/index.html, votre navigateur utilisera deux ressources et deux entrées de cache séparées. Au revoir les requêtes conditionnelles HTTP pour économiser le transit réseau.</p>
<p>Insérez des paramètres inutiles ou changeant dans vos liens avec ?exemple=1 et vous voilà avec encore une ressource différente pour le navigateur alors que ça pointe au même endroit.</p>
<p>Hésitez entre http://example.org/rep/ et http://example.org/rep et c&#8217;est encore pire. Non seulement ce sont deux ressources différentes pour le client, mais pour le serveur aussi. Ce dernier va opérer une redirection HTTP complète, et vous allez faire deux requêtes HTTP là où une seule aurait suffit (c&#8217;est géré par la directive DirectorySlash pour Apache par exemple). Si vous pointez vers un répertoire ou à la racine d&#8217;un site, votre adresse doit toujours se terminer par <code>/</code>.</p>
<p><strong>Pour une même ressource, assurez vous que vous utilisez toujours exactement la même adresse, sans variations.</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://performance.survol.fr/2008/09/normalisez-vos-liens/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
