tl;dr:我想加载一次 XML 文件并一遍又一遍地重复使用它。
我有一些 javascript 向 PHP 页面发出 ajax 请求,该页面收集和解析一些 XML 并将其返回以供显示(例如,假设有 4,000 个节点,PHP 将结果分页为 100 个 block ,您将拥有40“页”的数据)。如果有人单击其中一个其他页面(除了最初加载的页面),则会发出另一个请求,PHP 会加载那个大的 XML 文件,获取索引的子集(如记录 200-299)并返回它们以供显示。我的问题是,有没有办法只加载该 XML 文件一次,然后一遍又一遍地重复使用它?
每次ajax请求的流程是:
- 加载 xml 文件 (simplexml_load_file())
- 解析出所需的位(使用 xpath)
- 使用 LimitIterator 获取我需要的特定索引集
- 返回那个集合
当有人请求不同的分页结果时,我希望它是:
- 对我在上一个请求中加载的数据使用 LimitIterator(如果需要则重新解析)
- 返回那个集合
似乎(确实如此,对吗?)每次都访问 XML 文件是一种巨大的浪费。我将如何着手捕获它并坚持下去,以便不同的分页请求不必每次都重新加载文件?
最佳答案
让您的服务器根据用户输入和反馈读取和解析分页文件。这意味着它可以比客户端下载和缓存整个 XML 文档更快地缓存在服务器上。在将数据显示给用户之前,使用 PHP、Perl、ASP 或其他工具对数据进行分页。
关于php - 如何避免多次重新加载 XML 文档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2160025/