对于表格数据,哪些呈现速度更快(CSS还是<TABLE>)?
我正在寻找当前浏览器的一些统计信息,以了解使用纯HTML和避免使用实际的TABLE
,TR
,TD
等标签的经过黑客攻击的CSS puritan方法渲染表格所花费的时间。
我不是在寻找合适的东西,只是在寻找更快的东西,特别是在Firefox 3上,尽管我也对其他浏览器的统计数据感兴趣。当然,TABLE标签是为表设计的。那不是问题。
解决方案
不同的浏览器具有不同的javascript / css性能,因此很难一概而论。例如,IE7的引擎速度惊人,而Chrome的速度却惊人地快。 Firefox介于两者之间,取决于使用的是2还是3.
如果我们确实有表格数据,请使用表格。绝对不要将表用于任何内容的想法是对正确概念的错误扩展,该正确概念应该仅将html标记用于其预期的语义目的。这意味着使用CSS进行布局,但使用表格获取表格数据。这并不意味着从不使用表。
在这里,我不会将渲染速度视为最重要的方面。 HTML表用于表格数据。在我看来,将其放入很多DIV中完全是错误的。
就我所阅读的内容而言,如果我们实际上是在显示表格数据,那么表格更适合执行此任务,我个人发现这是非常正确的。
至于"更快"的原始数量,如@skaffman所提到的,它取决于浏览器...但是要"正确",可以将表格用于表格数据。
对于表格数据,请使用表格。表格具有各种不错的功能,例如<thead>
和<tfoot>
标签,图例,标题,标题等。使表格成为表格所需的一切。
另外,如果CSS无法正常工作/没有加载/没关系,则表格仍将按照其应有的方式工作。
通常,我会说将<table>用于表格数据。但是,如果表很长(例如,超过100行)并且列数很低(〜3),则使用div模拟行将导致标记占用的空间小得多。如果我们正在使用DOM搜索javascript(由许多JS库提供),则这特别相关,因为这将有利于减小DOM树的大小。
这是从经验中得出的,我有一个这样的表,并且正在寻找优化方法,将其转移到基于div的显示上,从而将生成的HTML缩减为三分之一,并且对DOM遍历性能有很大的改进。
由于某些浏览器要等到整个表格传输完毕后才能显示该表格,以确保它们已调整了内容大小的列宽,因此,如果要在每个浏览器中寻找平均值,使用divs可能会更快地呈现。
话虽如此,如果我们需要一张桌子,请使用一张桌子。
这个问题看起来与此相似:
为什么不使用表格在HTML中进行布局?因此我们可能还需要检查那里的一些响应。
通常,浏览器在计算完整个表后才渲染表,这意味着从用户的角度来看,大表比使用CSS样式代替表的相同内容要慢。我曾经在一个Web应用程序上工作过,当时它正在使用表来显示状态信息网格,并且显示起来非常费力而且非常慢。使用CSS显示的相同信息更快,更重要的是,它在加载时开始逐行显示,而不是等待整个表,因此,作为最终用户,它感觉更快。我建议使用CSS进行调查,以使用样本数据集进行测试以显示数据。我这样做是为了确认对于我们的特定用例,这些表实际上要慢得多。
如果我们使用CSS进行布局,并且遵循最佳实践,并且将CSS保存在单独的文件中,则通常只需在CSS缓存之前下载一次CSS,即可从缓存中受益。
如果我们使用表格进行布局,则布局表格将随每个页面的HTML一起发送,这会增加带宽和下载时间。
尽管可以尝试设置table-layout:fixed;来提高表的渲染速度。看看是否有帮助。
像上面的大多数答案一样,如果我们要显示表格数据,则也要使用Tables;如果要控制布局(使用CSS3),则要使用DIV。与信念相反,如果我们设置了诸如colgroup之类的属性并将布局保持不变,则表格的渲染速度不会比DIV慢。在以下链接中查看如何操作的详细信息:
当列出表格数据时,sites.google.com / site / spyderhoodcommunity / xhtml / makingtablesrenderfaster