Проблема вряд ли в PHP, это огромный объем HTML, выводимый в браузер. Вы можете проверить это самостоятельно, сохранив полученную страницу, а затем загрузив статический файл с жесткого диска.
Если вы выводите большую таблицу, у браузера часто возникают проблемы с «перерисовкой» ее по мере загрузки контента. Это можно минимизировать, установив фиксированную ширину для всех столбцов. Просто сделайте это в первом ряду.
Вы также можете выпрыгнуть из блока PHP для вывода большей части HTML, а затем просто распечатать переменные там, где это необходимо. Вот пример, предполагая, что все ваши данные находятся в переменной $rows
:
<?php
// some code here
?>
<table>
<thead>
<tr>
<th width="50">Header 1</th>
<th width="200">Header 2</th>
<th width="150">Header 3</th>
<th width="100">Header 4</th>
</tr>
</thead>
<tbody>
<?php foreach ( $rows as $r ) : ?>
<tr>
<td><?=$r['var1']?><td>
<td><?=$r['var2']?><td>
<td><?=$r['var3']?><td>
<td><?=$r['var4']?><td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
<?php
// continue here if necessary
Примечание: если у вас не включены короткие теги PHP, вам нужно вместо этого сделать <?php echo $r['var1'] ?>
.
Наконец, вы можете попробовать добавить сжатие gzip. Лучше всего это делать на уровне сервера, но в PHP вы можете добавить строку ob_start("ob_gzhandler");
в качестве самой первой строки кода PHP сразу после <?php
.
Если это все еще не помогает, то просто факт, что ваш стол слишком большой . Вам было бы гораздо лучше использовать нумерацию страниц или фильтрацию, чтобы уменьшить размер.