我正在开发一个 JavaScript 库,该库应该由针对不同平台(例如 Web/iOS/Android)的不同应用程序使用。
在此,应用程序需要进行 REST 调用来检索和解析大型多级 XML 数据(带有命名空间)。计划在这里使用 jQuery。
大型 XML 可能包含有时可能无用的数据。
例如,根据使用此库的应用程序中的区域设置,仅需要解析元数据的子集。
<meta>
<data>
...
...
...
</data>
<component local="EN-US">
...
</component>
<component local="EN-UK">
...
</component>
<component local="EN-AU">
...
</component>
</meta>
因此,解析 Ajax 响应中收到的所有数据似乎是浪费精力。
记住这一点,我想知道以下是否是解决此问题的好方法: 1. 存储 JQuery 的 Ajax 成功回调中收到的“responseXML”。 2. 当应用程序请求“EN-US”数据时,从存储的“responseXML”文档中解析相应的子节点,并返回结果。 (如果用户更改了区域设置,没问题,我们可以去解析 XML 数据的相应部分)。
我确实明白,随时随地解析会增加应用程序的延迟,但在我看来,整体应用程序性能会更好。无需预先解析所有数据并仅使用其中的一部分。
请分享您的想法/想法。
编辑:服务器由具有不同优先级的不同团队控制。因此,目前无法更改服务器端代码以返回适当的数据。
提前致谢,
最佳答案
为什么不让服务器只返回客户端当前需要的数据或者至少只返回所选本地的数据。考虑到移动用户,您会损害性能并使用昂贵的带宽来传输用户不需要的数据。
如果用户更改了本地,则可以发出新请求并让服务器返回该本地的数据。这将提高客户端的性能,并节省服务器上的带宽...
编辑:此外,您不能仅解析 XML 文档的某些子节点并跳过其他子节点。要到达 XML 中的特定节点,您必须解析它之前的所有节点,因此,如果稍后确实需要数据,您不妨处理该数据。
关于javascript - jQuery 中的大型 XML 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9985595/