Большие данные XML в jQuery - PullRequest
       2

Большие данные XML в jQuery

1 голос
/ 03 апреля 2012

Я работаю над библиотекой 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. Сохраните «responseXML», полученный в успешном обратном вызове Ajax JQuery. 2. Когда приложение запрашивает данные, скажем, «EN-US», анализируйте соответствующие подузлы из сохраненного документа «responseXML» и возвращайте результат. (Если пользователь изменяет настройку Locale, нет проблем, мы можем пойти и проанализировать соответствующий раздел XML-данных).

Я понимаю, что синтаксический анализ на ходу приведет к задержке приложения, но мне кажется, что общая производительность приложения будет лучше. Нет необходимости анализировать все данные заранее и использовать только их часть.

Пожалуйста, поделитесь своими мыслями / идеями.

РЕДАКТИРОВАТЬ: Сервер контролируется другой командой с разными приоритетами. Таким образом, изменение серверного кода для возврата соответствующих данных на данный момент не вариант.

Заранее спасибо,

1 Ответ

0 голосов
/ 03 апреля 2012

Почему бы вам не позволить серверу возвращать только те данные, которые нужны клиенту на данный момент, или, по крайней мере, возвращать только данные для выбранного локального сервера.Думая о мобильных пользователях, вы снизите производительность и будете использовать дорогостоящую полосу пропускания для данных, которые ему не нужны.

Если пользователь меняет локальный, вы можете сделать новый запрос и позволить серверу вернуть данные для этого языкового стандарта.,Это повысит производительность на клиенте, а также сэкономит пропускную способность на сервере ...

Редактировать: Также нельзя анализировать только некоторые подузлы XML-документа и пропускать другие.Чтобы добраться до определенного узла в XML, вам нужно проанализировать все предшествующие ему узлы, чтобы вы могли также обработать данные, если они вам действительно понадобятся позже.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...