php - 如何避免多次重新加载 XML 文档?

标签 php javascript xml

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/

相关文章:

java - JAXB - 将动态生成的 namespace 移动到文档根目录

javascript - Angular ngrx例子理解reselect

php - WordPress的慢查询杀死服务器。如何找到原产地?

php - 无法使用 AngularJS 和 PHP 从数据库中获取数据

PHP代码没有将数据输入数据库

javascript - 道场蜘蛛图中的固定轴

java - 如何通过 JavaFX WebEngine 通过 CSS 类名获取 HTML 元素?

xml - 通过 Camel 的 xpath 中字符的索引获取子字符串

PHP,读取通过 cURL 发送的 XML 文件

php - 如果定义 -php 则添加到数组