我只是在我的应用程序中包含了一些登录信息。出于测试目的,我用一些测试值填充了数据库(基本上是同一行一遍又一遍,大约 27k 行..)。
现在我想在视图上打印数据,这样做:
<table id="chatLogs">
<thead>
<tr>
<th>ID</th>
<th>Message ID</th>
<th>User Agent</th>
<th>IP:Port</th>
</tr>
</thead>
<tbody>
<?php
foreach($chatlogs as $log){ ?>
<tr>
<td><?=$log['ID'];?></td>
<td><?=$log['messageID'];?></td>
<td><?=$log['userAgent'];?></td>
<td><?=$log['IP'];?></td>
</tr>
<?php }
?>
</tbody>
</table>
$log
是我使用名为Medoo的数据库接口获得的变量。
此外,我还包括jQuery DataTables
了更好和可排序的表格。
<script>
$(document).ready( function () {
$('#chatLogs').DataTable({
dom: 'Bfrtip',
buttons: [
'copy', 'excel', 'pdf'
]
});
} );
</script>
现在,直到一切都完成并且页面完全加载,大约需要 15 秒(使用 27k 测试行)。我只是直接在数据库上测试了相同的查询,它需要 0.02 秒,所以它绝对是关于 PHP,而不是关于 SQL。
似乎呼应表中的所有内容都需要一些时间,以及“将其加载到 DataTables 中”......
现在的问题是:是否可以让它更快或立即加载,并在需要时加载数据?我的意思是只将数据加载到 JSON 中而不是先回显所有内容(这是最长的部分)?因为在表格中,反正第一行只有10行,每次点击下一页,它都能渲染出来。当然,所有数据仍然需要可供搜索。
有任何想法吗?