假设我有一个大表(几千行),我希望整个表尽可能快地呈现。
是否有可能以某种方式延迟表的渲染,直到整个表被下载?否则每行之后的宽度计算似乎占用了太多时间。
当我使用没有声明的doctype的IE时,浏览器似乎要等到它获得表的结束标记。但是,当我声明一个doctype时,表会立即开始渲染,因此必须在每个新行之后计算表宽度。
我不想使用table-layout:fixed
,因为我不希望内容在不应该的位置换行。
IE(8)似乎只是一个重要的时间差异?
(分页不是一种选择)
谢谢!
答案 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>