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
    paginator_ajax.php
    中编码,后者由ajax调用
在文件
paginator_ajax.php
中,我有以下内容:

  • 再次包括课程
  • 重新建立数据库连接
  • 重新获取数据
  • 再次生成视图
  • 更新页码

我的问题是,如果我已经在
index.php

中的某个变量中查询并存储了结果,我如何能够简化这个php脚本而不反复查询数据库?您可以使用JQuery DataTables对数据应用页面和排序。只需创建一个包含数据的元素,并将DataTable应用于数据。某些设置将为您提供所需的功能

注意事项:如果加载大量数据,数据表可能会变慢。列和/或行太多会使某些浏览器陷入爬行状态,并可能将其锁定。此时,最好在服务器端实现分页


如果试图实现这一点,您将失去分页的一个好处

连接数据库,获取表,将结果存储在对象中 用于存储对象(成员变量对应于字段名)。所以我 将所有查询的数据存储在类DataList的对象中

当这个表有10000条记录时会发生什么?分页的要点之一是只检索一个小数字,比如10、25或50,以保持数据库查询的快速。否则,您将失去效率和速度

您应该停止尝试以这种方式实现它,因为这样做没有意义,如果与查询数据库完全不同,那么对服务器的请求时间+获得小于100的分页结果集将可以忽略不计。如果您有一个带索引的优化查询

您应该对结果集进行分页,并将当前页面和使用的限制发送回客户端,允许客户端增加页面计数以获得下一个结果集

我建议您重新考虑这个策略,即提取整个表,然后在PHP中处理它,因为这是数据库的目的,而不是为此目的而优化的