2009-12-01 7 views
3

J'ai eu l'argument "CSS hacks" vs "Commentaires conditionnels" assez souvent ces derniers temps que je pensais que je voudrais envoyer cette question à la communauté Stack Overflow.Do Les commentaires conditionnels d'IE ralentissent le chargement de la page?

<!--[if IE]> 
<link type="text/css" rel="stylesheet" href="ie-specific.css" /> 
<![endif]--> 

Le principal argument contre utilisant IE Commentaires conditionnels semble être que vous ajoutez des requêtes HTTP supplémentaires sur chaque pageload, ralentissant ainsi l'affichage de votre page. Ce que j'ai n'ai pas trouvé sont des métriques du monde réel prouvant ou réfutant cette déclaration. Laissant de côté l'argument de la maintenance de plusieurs feuilles de style par rapport à une feuille de style (bien que ce soit une discussion valide en soi), quelqu'un a-t-il fait des tests pour déterminer le ralentissement des commentaires conditionnels? être capable de me pointer dans la direction de toutes les statistiques que quelqu'un d'autre a recueillies?

Répondre

7

Ce n'est pas vraiment sur les commentaires conditionnels en soi, c'est comme la compilation conditionnelle.

Un navigateur IE voir votre page comme incluant

<link type="text/css" rel="stylesheet" href="ie-specific.css" /> 

(avec un petit peu de traitement supplémentaire pour évaluer l'état de commentaire).

Un navigateur non-IE verra simplement un commentaire. Le seul impact potentiel sur les performances est donc que les navigateurs Internet Explorer devront évaluer la condition du commentaire conditionnel (qui sera négligeable), et ensuite inclure un autre fichier CSS. Bien sûr, d'autres navigateurs ne voient que le fichier générique et ignorent complètement le commentaire. La question est alors de savoir quel est le pour et le contre de servir un fichier CSS conforme aux normes (par exemple) 5Kb suivi d'un fichier (hacks) de 2 Ko, et de demander à tout le monde d'obtenir uniquement le fichier 5Kb; vs servir tout le monde un fichier de 7Ko avec CSS CSS. En fonction de divers facteurs, notamment la vitesse et la latence du réseau, la taille du fichier, le nombre de ressources utilisées sur la page, etc., cela peut avoir ou non un impact notable sur les performances du boîtier IE (il sera incontestablement plus rapide pour les agents utilisateurs non IE). Comme pour toutes les questions de performance, vous devrez établir le profil votre code dans votre environnement pour voir quel est l'impact - mais en règle générale, je pense que l'impact sera négligeable pour IE, une petite augmentation de performance pour tous les autres navigateurs, ainsi que le sentiment flou étant en mesure d'écrire CSS "correct" dans votre fichier réel, puis réparer IE séparément.

+0

Bien, Andrezej. Je vous remercie. – Scottie