Php 使用ajax分页数据的实用方法
我有一个文件Php 使用ajax分页数据的实用方法,php,jquery,ajax,pagination,Php,Jquery,Ajax,Pagination,我有一个文件index.php,它的工作原理如下: 连接数据库,获取表,将结果存储在存储对象的对象中(成员变量对应于字段名)。因此,我将所有查询的数据存储在类DataList的对象中 我有一个DataListPaginator,它实现了Iterator接口,我用它来分页:$p=newdatalistpaginator($d,1,10)其中$d属于数据列表类,1是页码,10是每页要显示的项目 在底部,我有一些实际分页脚本的页码,这是一个ajax解决方案,在loadPaginator.js和pag
index.php
,它的工作原理如下:
- 连接数据库,获取表,将结果存储在存储对象的对象中(成员变量对应于字段名)。因此,我将所有查询的数据存储在类
的对象中DataList
- 我有一个
,它实现了DataListPaginator
接口,我用它来分页:Iterator
其中$p=newdatalistpaginator($d,1,10)
属于$d
数据列表类,1是页码,10是每页要显示的项目
- 在底部,我有一些实际分页脚本的页码,这是一个ajax解决方案,在
和loadPaginator.js
中编码,后者由ajax调用paginator_ajax.php
paginator_ajax.php
中,我有以下内容:
- 再次包括课程
- 重新建立数据库连接
- 重新获取数据
- 再次生成视图
- 更新页码
我的问题是,如果我已经在
index.php
中的某个变量中查询并存储了结果,我如何能够简化这个php脚本而不反复查询数据库?您可以使用JQuery DataTables对数据应用页面和排序。只需创建一个包含数据的元素,并将DataTable应用于数据。某些设置将为您提供所需的功能
注意事项:如果加载大量数据,数据表可能会变慢。列和/或行太多会使某些浏览器陷入爬行状态,并可能将其锁定。此时,最好在服务器端实现分页
如果试图实现这一点,您将失去分页的一个好处 连接数据库,获取表,将结果存储在对象中 用于存储对象(成员变量对应于字段名)。所以我 将所有查询的数据存储在类DataList的对象中 当这个表有10000条记录时会发生什么?分页的要点之一是只检索一个小数字,比如10、25或50,以保持数据库查询的快速。否则,您将失去效率和速度 您应该停止尝试以这种方式实现它,因为这样做没有意义,如果与查询数据库完全不同,那么对服务器的请求时间+获得小于100的分页结果集将可以忽略不计。如果您有一个带索引的优化查询 您应该对结果集进行分页,并将当前页面和使用的限制发送回客户端,允许客户端增加页面计数以获得下一个结果集 我建议您重新考虑这个策略,即提取整个表,然后在PHP中处理它,因为这是数据库的目的,而不是为此目的而优化的