我正在开发一个JavaScript库,该库应该被针对各种平台(如Web / iOS / Android)的不同应用程序使用。
在此,应用程序需要进行REST调用以检索和解析大型多级XML数据(带有命名空间)。计划在这里使用jQuery。
大型XML可能包含有时可能无用的数据。
例如,根据使用此库的应用程序中的Locale设置,只需要解析元数据的子集。
<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-Data的相应部分。)
我明白,在移动中解析会给应用程序增加延迟,但在我看来,整体应用程序性能会更好。无需预先解析所有数据并仅使用其中的一部分。
请分享您的想法/想法。
编辑:服务器由具有不同优先级的其他团队控制。因此,目前无法更改服务器端代码以返回适当的数据。
先谢谢,
答案 0 :(得分:0)
为什么不让服务器仅返回客户端目前需要的数据,或者至少只返回所选本地的数据。考虑到移动用户,您将损害性能,并为用户不需要的数据使用昂贵的带宽。
如果用户更改了本地,您可以发出新请求并让服务器返回此区域设置的数据。这样可以提高客户端的性能,还可以节省服务器的带宽......
编辑:此外,您无法仅解析XML文档的某些子节点并跳过其他子节点。要访问XML中的特定节点,您必须解析之前的所有节点,因此如果您以后真的需要它,也可以处理数据。