我有一个区域,其中包含来自php mysql查询的大约100条记录。
需要添加ajax分页意味着首先加载10条记录,然后在用户点击时让它说“+”字符填充下一个20条。
因此,该区域不是一次显示所有区域,而是显示20,然后点击,然后是下一个20,下一个...依此类推,无需刷新。
我应该在会话变量上转储100条记录吗?
每次用户点击下一页触发器时,我都应该调用Myqsl查询吗?
不确定什么是最好的方法......或者解决这个问题。
我担心的是数据库将从100增长到10,000。
任何帮助方向都非常偏向。
答案 0 :(得分:1)
你的ajax调用应该调用一个只从数据库中提取所需行数的页面。所以从第一页上的查询中选择前20行,依此类推。你的ajax调用可以使用一个名为pagenum的参数,具体取决于你实际从数据库中提取的记录。不需要会话变量。
答案 1 :(得分:1)
如果您有经常查看的大型记录集(但不经常更新),请查看APC以缓存数据并在会话之间共享。您还可以创建在数据更改时重写的静态文件。
如果需要在页面上对数据进行排序/操作,则需要限制加载的记录数以防止JavaScript运行太长时间。 ExtJS有一些不错的小部件可以做到这一点,只需提供JSON数据(在记录集上使用PHP的编码方法)。我们与Oracle进行了一次对话,并且相当容易地进行20记录分页。
如果您的大型记录集经常更新,并且数据必须“实时”准确,那么您将面临一些重大挑战。我会查看彗星,猿或网络工作者的轮询/推送解决方案并构建您的API以仅处理“核心”数据的更新 - 再次,可能缓存在服务器上而不是每次都从数据库中提取。 / p>