У меня есть CGI-программа старого стиля, которая генерирует большую таблицу HTML.Поскольку содержимое таблицы вычисляется медленно (хотя она и не такая уж и большая), я хотел бы печатать ее по одной строке за раз, и чтобы браузер отображал строки по мере их выборки.
Если вы выполняете поиск в Интернете, выВы увидите, что style = "table-layout: fixed" должен помочь некоторым браузерам сделать это, но, с другой стороны, Firefox может отображать пошагово даже без него.Мой тестовый браузер - Firefox 4.0b10 для Windows, но я не могу заставить его отображаться постепенно, используя простой пример ниже:
<html>
<head>
<title>x</title>
</head>
<body>
<table width="100%" style="table-layout: fixed" rows="4" cols="4">
<col width="10%" />
<col width="20%" />
<col width="30%" />
<col width="40%" />
<tr><td width="10%">a</td><td width="20%">b</td><td width="30%">c</td><td width="40%">d</td></tr>
<!-- flush output, one second pause... -->
<tr><td width="10%">a</td><td width="20%">b</td><td width="30%">c</td><td width="40%">d</td></tr>
<!-- flush output, one second pause... -->
<tr><td width="10%">a</td><td width="20%">b</td><td width="30%">c</td><td width="40%">d</td></tr>
<!-- flush output, one second pause... -->
<tr><td width="10%">a</td><td width="20%">b</td><td width="30%">c</td><td width="40%">d</td></tr>
<!-- flush output, one second pause... -->
</table>
</body>
</html>
Вместо этого страница пуста до конца загрузки, когда появляется вся таблица.Я пробовал различные способы сообщить браузеру размеры таблицы заранее, поэтому у него не должно возникнуть проблем с отображением его по мере поступления, но они не помогают.(Удаление подсказок также не помогает.)
Если я изменю свой CGI-скрипт, чтобы закрыть и перезапустить таблицу между каждой строкой, с дополнительным пустым абзацем между ними, то страница будет отображаться в браузере постепенно.,Это показывает, что данные поступают в браузер постепенно - только Firefox решает не отображать их.
По иронии судьбы, гораздо более сложные скрипты, создающие таблицы большего размера, похоже, делают то, что я хочу, показывая одну строку за раз какон загружается, но всякий раз, когда я пытаюсь сократить вывод до минимального теста, он не работает.Это заставляет меня подозревать, что движок рендеринга Firefox использует эвристику сложности.
Какая волшебная пыль мне нужно, чтобы браузер всегда отображал загруженную таблицу до сих пор?