打印大量信息时PHP非常慢

A. *_* M. 3 php printing performance

我有一个应用程序,我需要从数据库中检索大量的行,然后在屏幕上打印它们.我检查了mysql查询,这不是问题所在.问题是所有行都需要打印在同一页面上,没有分页,而且需要很长时间(我说的是一个带有几行行的表).有什么方法可以加快速度吗?我在Google上发现的唯一一件事是使用","而不是"." 使用echo时 我将测试这个以确定是否有任何改进,但我不确定它会产生如此大的差异.

Dis*_*oat 6

这个问题不太可能是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
Run Code Online (Sandbox Code Playgroud)

注意:如果您没有启用PHP短标记,则需要执行此操作<?php echo $r['var1'] ?>.

最后,您可以尝试添加gzip压缩.它最好在服务器级别完成,但在PHP中,您可以将该行添加ob_start("ob_gzhandler");为紧随其后的第一行PHP代码<?php.

如果这仍然没有帮助,那么你的桌子太大了就是一个简单的事实.使用分页或过滤以减小尺寸会更好.

  • 一个小小的改进可能是将它分解成更小的表...每50个左右的项目,开始一个新的表.你可以设计它的样式,使它看起来无缝. (2认同)