Jump to content
  • 0

Парсинг большого xml файла


100kd
 Share

Question

Яваскриптом (с помощью jquery), я произвожу отбор данных из xml файла, объемом где-то в 100 килобайт.

xml файл формируется на стороне сервера и часто обновляется.

Парсинг происходит во время ввода пользователем данных в форму.

Вопрос: как избежать задержку, вызванную загрузкой xml файла на сторону клиента?

Обращение к файлу, происходит с помощью следующих функций:

$.ajax({
type: "GET",
url: "/xml/places.xml",
dataType: "xml",
success: function(xml) { ... }
})

Edited by 100kd
Link to comment
Share on other sites

6 answers to this question

Recommended Posts

  • 0

Не понял суть вопроса. Опишите задачу, а не то как вы её решаете. Весьма возможно, что есть лучшее решение для неё. Это первое. А по тому, что есть, я могу сказать только то, что если файл надо целиком загружать, то это надо делать перед выводом формы, а не во время - тогда и задержек из-за загрузки не будет

Link to comment
Share on other sites

  • 0
Яваскриптом (с помощью jquery), я произвожу отбор данных из xml файла, объемом где-то в 100 килобайт.

xml файл формируется на стороне сервера и часто обновляется.

Парсинг происходит во время ввода пользователем данных в форму.

Вопрос: как избежать задержку, вызванную загрузкой xml файла на сторону клиента?

Тут на самом деле две задержки даже. Первая, пока данные идут пользователю. Вторая - динамический парсинг.

Из быстрых решений приходи на ум три метода

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

2. Загружать первичные данные при загрузке страницы с формой вместе с этой самой формой. Это может быть уже не XML, а JSON например

3. Не гонять весь XML, а гонять только часть по требованию.

Вторая проблема - скорость парсинга XML. Она может вносить лаги до секунды. Бороться с этим можно предварительным индексированием XML и преобразованием в JS-объекты или массивы.

Link to comment
Share on other sites

  • 0

Делаю поисковый помощник:

search.png

Скорость парсинга xml — хорошая. Беспокоит, что пользователи пришедшие на сайт, особенно с медленным интернетом, не смогут вовремя получать подсказки при использовании поисковой формы.

3. Не гонять весь XML, а гонять только часть по требованию.

А это как?

Edited by 100kd
Link to comment
Share on other sites

  • 0
Скорость парсинга xml — хорошая. Беспокоит, что пользователи пришедшие на сайт, особенно с медленным интернетом, не смогут вовремя получать подсказки при использовании поисковой формы.

Чтобы они понимали, что им что-то кто-то пытается подсказать, нужно просто сигнализировать о загрузке подсказок. Тот, кому нужна она, подождет. В этом ничего страшного нет.

А это как?

Это отсылать на сервер введенные пользователем буковки (в приведенном скриншоте это "ка"), а в ответ выдавать XML с нужным списком, а не со всем подряд.

Не забыть ставить таймауты на реагирование на нажатие кнопок, чтобы пользователь не флудил "пустыми" запросами. Минимальное количество символов можно ставить два или три.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy