只是在我的表現題目扔兩美分。對於小型(例如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