Существуют ли другие способы вывода таблицы HTML, которые работают быстрее, чем мой цикл WHILE?
Потенциально да. PHP является языком шаблонов. Используйте это как таковое, не боритесь с этим! Собственные шаблоны, скорее всего, будут быстрее, чем кропотливо склеивать строки вручную, и IMO будет более читабельным.
<table>
<?php foreach($results as $result) { ?>
<tr>
<td><?php echo htmlspecialchars($result[0]); ?></td>
<td><?php echo htmlspecialchars($result[1]); ?></td>
</tr>
<?php } ?>
</table>
(Обратите внимание на использование htmlspecialchars
. Если вы не используете эту функцию каждый раз, когда вы вставляете простой текст в HTML, ваш код имеет недостатки HTML-инъекции, что приводит к потенциальному Уязвимости в сценариях. Вы можете определить функцию с коротким именем, например h
, для выполнения echo htmlspecialchars
, чтобы избежать некоторой типизации, но вы должны HTML-кодировать свои строки.
Однако: хотя это красивее и безопаснее, на практике это вряд ли будет значительно быстрее. Ваша медленная рендеринг на стороне клиента почти наверняка будет вызвана еще:
скорости передачи по сети для большого количества табличных данных. Вы можете улучшить это, установив zlib.output_compression
, mod_deflate
или другой фильтр сжатия для вашего веб-сервера, если вы этого еще не сделали.
скорости рендеринга для больших таблиц. Вы можете улучшить это, установив стиль CSS table-layout: fixed
для элемента <table>
и добавив элементы <col>
с явными стилями width
для столбцов, для которых вы хотите иметь фиксированную ширину.