Можно ли отображать таблицу в конце тега
Скажем, у меня большая таблица (пара тысяч строк), и я хочу, чтобы вся таблица отображалась как можно быстрее.
Возможно ли каким-либо образом отложить рендеринг таблицы до тех пор, пока не будет загружена вся таблица? В противном случае вычисления ширины после каждых строк, похоже, занимают слишком много времени.
Когда я использую IE без объявленного doctype, браузер, похоже, ждет, пока он не получит закрывающий теги. Однако, когда я объявляю doctype, таблица начинает рендеринг сразу и поэтому приходится вычислять ширину таблицы после каждой новой строки.
Я не хочу использовать table-layout:fixed
, так как я не хочу, чтобы контент был разбит на строки, где он не должен.
В IE (8) только значительная разница во времени?
(разбиение на страницы не является вариантом)
Спасибо!
Вы можете скрыть таблицу до ее загрузки:
<table id="PopTable" style="display:none">
...
</table>
<script type="text/javascript">
document.getElementById('PopTable').style.display = '';
</script>
Вы можете сделать следующее:
используйте table-layout:fixed
в таблице, в то время как данные загружаются.
И после закрывающего тега таблицы добавьте небольшой script, который удаляет 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>
Несмотря на то, что это было бы уродливое решение, вы могли бы скомпоновать этот HTML-код в document.write()
-колле или так, что могло бы замедлить рендеринг.
Что-то вроде этого:
<script>document.write('<table>...</table>')</script>