A. *_* M. 3 php printing performance
我有一个应用程序,我需要从数据库中检索大量的行,然后在屏幕上打印它们.我检查了mysql查询,这不是问题所在.问题是所有行都需要打印在同一页面上,没有分页,而且需要很长时间(我说的是一个带有几行行的表).有什么方法可以加快速度吗?我在Google上发现的唯一一件事是使用","而不是"." 使用echo时 我将测试这个以确定是否有任何改进,但我不确定它会产生如此大的差异.
这个问题不太可能是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.
如果这仍然没有帮助,那么你的桌子太大了就是一个简单的事实.使用分页或过滤以减小尺寸会更好.