Table réelle Vs. Div table
Ce
<table>
<tr>
<td>Hello</td>
<td>World</td>
</tr>
</table>
Peut être fait avec cette:
<div>
<div style="display: table-row;">
<div style="display: table-cell;">Hello</div>
<div style="display: table-cell;">World</div>
</div>
</div>
Maintenant, quelle est la différence entre ces deux conditions de performance et/ou la vitesse de rendu, ou qu'ils soient tout de même?
- Tables de mise en page possible, les divs la rendre impossible. Tables pour lire, facile à comprendre le code. Divs exiger des charges de hackery et astuces pas si facile à comprendre, et même alors, les résultats sont tellement et pleine de comportement indésirable.
- Si vous êtes à remplir ce tableau avec les DONNÉES? Oui, l'utilisation de tables. Êtes-vous à l'aide pour MISE en page de votre SITE web? NE PAS TABLES! Div sont pour le contenu du site web/mise en page, les tables sont un simple élément qui a un seul but de la présentation de chiffres/données vraiment bien.
Vous devez vous connecter pour publier un commentaire.
Il est sémantiquement incorrect pour simuler des tableaux de données avec des divs et, en général, hors de propos pour les performances car le rendu est instantanée. Le col de la bouteille vient de JavaScript ou de très longues pages avec beaucoup d'éléments imbriqués qui, habituellement, dans les vieux jours est de 100 tables imbriquées pour la création de modèles.
Utiliser des tableaux pour ce qu'ils sont censés et div pour ce qu'ils sont censés le faire. Le tableau d'affichage de la ligne et les propriétés de la cellule sont à utiliser div mises en plus de la création de tables pour la représentation des données. Regarder une disposition de colonnes et de lignes mêmes que celles que vous pouvez trouver dans un journal ou un magazine.
Performance sage, vous avez un couple de plus d'octets avec la div exemple, lol 🙂
En première instance, je ne voudrais pas vous soucier de la performance, mais plus sur la sémantique. Si c'est des données tabulaires, utiliser un
<table>
. Si ce sont juste des éléments de bloc représentant un élément de mise en page, l'utilisation<div>
.Si vous avez vraiment, vraiment vous soucier de la performance, la réponse dépend du client. MSIE, par exemple, est connu pour être lent dans le tableau de rendu. Vous devriez au moins le tester vous-même dans les différents navigateurs.
Si ce worriness est provoquée par l'afflux de données, puis je envisager d'introduire de pagination/filtrage des données que vous êtes sur le point de montrer.
Vous ne devriez pas vous soucier de performances dans le tableau de rendu. Même si il y en a un, vous ne le remarquez pas jusqu'à ce qu'il y a des centaines (des milliers?) des tableaux d'affichage. Utilisez ce que vous sentez le plus confortable pour vous.
Il y a beaucoup de discussions à ce sujet et div table d'habitude prend le dessus en raison de sa flexibilité en matière de style.
Voici un lien - http://css-discuss.incutio.com/wiki/Tables_Vs_Divs
Que je voulais mentionner que si vous utilisez une structure de table au lieu de div que les utilisateurs peuvent maintenir CMD (ou ALT sous windows) pour sélectionner une zone de données de la table à copier. Ces données sont également des pâtes très facilement dans excel et d'autres semblables classeur programmes.
La table ne sera pas rendue jusqu'à ce que tous ses balisage a été téléchargé. Alors que les divs sera rendu dès que leur langage est téléchargé. Je suppose que le temps total sera le même, mais les divs donnera une perception d'une meilleure performance et une plus grande réactivité.
table-layout
est fixé àfixed
.<thead>
,<tfoot>
et<tbody>
tags? J'ai lu quelque part que le rendu des tables est améliorée parce que les navigateurs modernes reconnus et rendus première<thead>
et<tfoot>
contenutfoot
sont principalement utilisés pour l'impression où ils sont censés être affichés sur le haut et le bas de chaque page (si la table concernée est plus d'une page).À mon avis, la seule raison d'utiliser des divs sont pour le style et l'ajustement de la mise en page basée sur la taille du navigateur. Si elle n'est pas cassé, ne le répare pas. Les Divs sont plus faciles à coiffer mais avec les css.
Tables:
pros - vous pouvez obtenir un très compliquée mise en page exactement comment vous le voulez. Plus fiable.
le contre - tables un peu bizarre parfois compliquée avec le style css. pas bon pour les responsables de sites web.
Divs: pouvez régler à partir du navigateur d'entrée, plus souple et plus facile à coiffer.
Si vous êtes à présenter des données tabulaires, alors vous devriez utiliser un tableau, et les éléments, tous les de la sémantique pour représenter un tableau de données. Un gâchis de divs n'en a aucun.
Juste en les jetant dans mes deux cents sur le thème de la performance. Pour les petits (moins de 100 lignes, par exemple) des tableaux en utilisant des DIVs ne ferait pas beaucoup de différence de performance sage.
Si vous voulez créer de très longues ensembles de données, d'autre part, vous avez les mains vers le bas devrait absolument utiliser les tableaux en HTML.
Brève Explication:
Tout cela a engendré de mon projet de l'entreprise, où j'ai écrit une classe Javascript pour le plan procédural générer des tableaux pour moi sur la base de données SQL (c'est une déclaration type de module). De toute façon, j'aime les DIVs j'ai donc écrit pour être DIV basé, comme l'OP exemple.
Après quelques horribles de la performance (dans IE8 en particulier), j'ai décidé de le ré-écrire en utilisant simplement les tables, car il est assez simple de données tabulaires, dans l'ensemble. Les Tables sont, pour quelque raison que ce soit, environ deux fois plus vite sur ma machine en Chrome. La même chose est vraie pour Safari.
Cela dit, puisque je ne peux pas donner mon travail code, j'ai écrit un petit benchmark thinggy qui vient de vous essayer l'une ou de la méthodologie de l'extérieur. Vous verrez qu'ils sont presque identiques, un seul utilise des divs avec un style à imiter le comportement standard d'une table, et l'autre est juste une vieille école de table.
La seule véritable différence est le type de l'élément en cours de génération, de sorte que c'est la seule chose que je puisse en tenir compte dans le temps delta. Je suis sûr qu'il varie en fonction du navigateur, mais il me semble que les éléments de la table sont juste plus rapide.
setAttribute
appels. Pouvez-vous faire un test qui consiste à injecter de l'HTML? Notez également que vous êtes en mesure de la création de la vitesse, pas la vitesse de rendu.style
attribut comme une chaîne de caractères, il doit analyser l'ensemble de la valeur que CSS. Essayez de définirstyle.display
(une chaîne) etstyle.padding
(en pixels si un nombre) à la place.