<?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; Building High Performance HTML Pages</title>
	<atom:link href="http://performance.survol.fr/avec/building-high-performance-html-pages/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>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>
