如何有效地分页一个PHP数组


How to efficiently paginate a PHP array?

我有一个数组,目前通过使用URL参数分页(例如. ....php?page=2&blah=blop&glob=gloo)。

此刻,每次页面加载时,一个XML文件正在从查询引擎下载,解析,然后我拉出一个我想要使用的对象数组。

我如何设置这个,使我不必重新加载页面,只需要从XML文件读取一次?

我对PHP相当陌生,所以请原谅我。经过一些研究,我认为Ajax是合适的吗?如果我说错了,请纠正我。我试着找出一些关于Ajax分页的东西,但我发现最有用的东西是从mysql数据库分页数据,而不是对象数组。

谁能提供任何指针?我渴望学习

当我需要这个时,我创建一个缓存函数,a)从原始源加载XML,然后将其保存到缓存文件夹,或者B)从缓存文件夹加载它,如果它存在,并且满足其他标准(如新鲜度)

在一个必须从一个相当慢的服务器检索数据的网站上,我把a)放到一个cron作业中,并且总是从网站的缓存中读取数据。

如果您需要大数据分页,这里有一个很好的示例:http://net.tutsplus.com/tutorials/php/how-to-paginate-data-with-php/

您可以调整您找到的用于处理数据库的AJAX来处理您的数据对象,这样页面只加载一次。

您可以使用memcached将XML缓存到内存中,也可以将其保存到本地文件并从中读取。

此外,您可以将其保存为另一种更快的格式(可能是json ?)并将其拆分为文件-每个页面一个文件-并且仅读取所需页面的文件。

如果文件是用户特定的,那么另一个选择是将它保存在会话中(如果它不是太大的数组形式),或者如果你想将它保存在文件中,那么在文件名前加上session-id。

这完全取决于你想对文件和它的内容做什么

您可能对php分页类感兴趣