jQuery中的大型XML数据

时间:2012-04-03 00:26:13

标签: javascript jquery xml parsing

我正在开发一个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的相应部分。)

我明白,在移动中解析会给应用程序增加延迟,但在我看来,整体应用程序性能会更好。无需预先解析所有数据并仅使用其中的一部分。

请分享您的想法/想法。

编辑:服务器由具有不同优先级的其他团队控制。因此,目前无法更改服务器端代码以返回适当的数据。

先谢谢,

1 个答案:

答案 0 :(得分:0)

为什么不让服务器仅返回客户端目前需要的数据,或者至少只返回所选本地的数据。考虑到移动用户,您将损害性能,并为用户不需要的数据使用昂贵的带宽。

如果用户更改了本地,您可以发出新请求并让服务器返回此区域设置的数据。这样可以提高客户端的性能,还可以节省服务器的带宽......

编辑:此外,您无法仅解析XML文档的某些子节点并跳过其他子节点。要访问XML中的特定节点,您必须解析之前的所有节点,因此如果您以后真的需要它,也可以处理数据。