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