是否可以在结束标记处呈现表

时间:2010-12-21 12:58:08

标签: html css

假设我有一个大表(几千行),我希望整个表尽可能快地呈现。

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

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

IE(8)似乎只是一个重要的时间差异?

(分页不是一种选择)

谢谢!

3 个答案:

答案 0 :(得分:2)

你可以隐藏桌子,直到它被加载:

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

答案 1 :(得分:0)

虽然这将是一个丑陋的解决方案,但您可以将该HTML包装在document.write() - 调用左右,这可能会延迟渲染。

这样的事情:

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

答案 2 :(得分: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>