2010-12-21 41 views
0

假设我有一个大表格(几千行),并且希望整个表格尽可能快地呈现。是否可以在结束标记处呈现表格

是否有可能以某种方式延迟表的渲染,直到整个表被下载?否则,每行之后的宽度计算似乎占用了太多时间。

当我使用没有声明的doctype的浏览器时,浏览器似乎一直等到表格的结束标记。但是,当我声明doctype时,表格立即开始渲染,因此必须在每个新行之后计算表格宽度。 我不想使用table-layout:fixed,因为我不希望内容在不应该换行的地方换行。

这似乎只是在IE(8)的显着时间差异?

(分页是不是一个选项)

谢谢!

回答

2

,直到它的加载可以隐藏表:

<table id="PopTable" style="display:none"> 
    ... 
</table> 
<script type="text/javascript"> 
document.getElementById('PopTable').style.display = ''; 
</script> 
+0

这使事情变得更好,但它仍然是更慢与DOCTYPE比没有。任何想法为什么? – picknick 2010-12-21 16:28:10

0

虽然这将是一个丑陋的解决方案,但您可以将这个HTML打包成document.write(),这样可以有效延迟渲染。

事情是这样的:

<script>document.write('<table>...</table>')</script> 
0

你可以做到以下几点: 在桌子上使用table-layout:fixed,当数据被下载。

并在表格的结束标记后,添加一个小脚本,删除css。

例子:

<table style='table-layout:fixed' id='data_table'> 
<!-- All your data --> 
</table> 
<script type='text/javascript'> 
    document.getElementById('data_table').style.tableLayout = 'auto'; 
</script> 
相关问题