我有一个数组,目前通过使用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分页类感兴趣