只是在我的表现题目扔两美分。对于小型(例如100行以下)的表格,使用DIV不会在性能方面产生太大的差异。
如果要生成很长的数据集,在另一方面,你倒手绝对应该使用传统的HTML表格。
简要说明:
这一切都从我公司的项目中,我写了一个Javascript类以程序上生成基于SQL的数据(这是一个报告各种模块),我的表催生。无论如何,我喜欢DIV,所以我写它是基于DIV的,就像OP示例一样。
经过一些可怕的表现后(特别是在IE8中),我决定使用表格重新编写它,因为它总体上是非常简单的表格数据。无论出于何种原因,表格都是Chrome中我的计算机上的两倍。 Safari也是如此。这就是说,由于我无法提供我的工作代码,所以我写了一个小小的基准测试工具,让您可以尝试其中一种方法。你会发现他们几乎完全相同,只有一个人用造型来模仿桌子的标准行为,而另一个只是一张老式的桌子。
唯一真正的区别是正在生成的元素的类型,所以这是我可以在时间增量中解释的唯一的事情。我确定它会因浏览器而异,但在我看来,表格元素更快。
<script type="text/javascript">
var time_start = new Date().getTime();
var NUM_ROWS = 5000;
var NUM_CELLS = 8;
var OLD_STYLE = 1; // toggle 0/1, true/false
if(OLD_STYLE)
{
var table = document.createElement('table');
document.body.appendChild(table);
for(var a = 0; a < NUM_ROWS; a++)
{
var row = document.createElement('tr');
for(var b = 0; b < NUM_CELLS; b++)
{
var cell = document.createElement('td');
cell.innerHTML = 'cell';
row.appendChild(cell);
}
table.appendChild(row);
}
}
else
{
var table = document.createElement('div');
document.body.appendChild(table);
for(var a = 0; a < NUM_ROWS; a++)
{
var row = document.createElement('div');
row.setAttribute('style','display: table-row; padding: 2px;')
for(var b = 0; b < NUM_CELLS; b++)
{
var cell = document.createElement('div');
cell.setAttribute('style','display: table-cell; padding: 2px');
cell.innerHTML = 'cell';
row.appendChild(cell);
}
table.appendChild(row);
}
}
var dt = (new Date().getTime() - time_start)/1000;
console.log(dt + ' seconds');
</script>
表使布局成为可能,divs使它不可能。表格使可读,易于理解的代码。 Divs需要大量的骇客和诡计,这些都不太容易理解,即使如此,结果也如此充满了不必要的行为。 – Anderson 2013-07-09 11:32:23
如果你用DATA填充这个表格?是的,使用表格。您是否在使用它来布局您的网站? ***请勿*** **使用表格**! Div是用于网站内容/布局的,表格是一个陈旧的元素,其唯一目的就是很好地排列数字/数据。 – Mike 2014-02-03 18:10:40