Ajax阵列显示控制 - 分页

时间:2010-09-30 18:39:04

标签: php javascript mysql ajax pagination

我有一个区域,其中包含来自php mysql查询的大约100条记录。

需要添加ajax分页意味着首先加载10条记录,然后在用户点击时让它说“+”字符填充下一个20条。

因此,该区域不是一次显示所有区域,而是显示20,然后点击,然后是下一个20,下一个...依此类推,无需刷新。

我应该在会话变量上转储100条记录吗?

每次用户点击下一页触发器时,我都应该调用Myqsl查询吗?

不确定什么是最好的方法......或者解决这个问题。

我担心的是数据库将从100增长到10,000。

任何帮助方向都非常偏向。

2 个答案:

答案 0 :(得分:1)

你的ajax调用应该调用一个只从数据库中提取所需行数的页面。所以从第一页上的查询中选择前20行,依此类推。你的ajax调用可以使用一个名为pagenum的参数,具体取决于你实际从数据库中提取的记录。不需要会话变量。

答案 1 :(得分:1)

如果您有经常查看的大型记录集(但不经常更新),请查看APC以缓存数据并在会话之间共享。您还可以创建在数据更改时重写的静态文件。

如果需要在页面上对数据进行排序/操作,则需要限制加载的记录数以防止JavaScript运行太长时间。 ExtJS有一些不错的小部件可以做到这一点,只需提供JSON数据(在记录集上使用PHP的编码方法)。我们与Oracle进行了一次对话,并且相当容易地进行20记录分页。

如果您的大型记录集经常更新,并且数据必须“实时”准确,那么您将面临一些重大挑战。我会查看彗星,猿或网络工作者的轮询/推送解决方案并构建您的API以仅处理“核心”数据的更新 - 再次,可能缓存在服务器上而不是每次都从数据库中提取。 / p>