2014-10-23 2 views
-2

Фон: Я создаю веб-приложение (Mongo, Express, Angular и Node) для извлечения некоторых данных из БД и отображения некоторых графиков на клиенте. Графики являются динамическими (благодаря D3 и Crossfilter), и пользователь может взаимодействовать с диаграммами для фильтрации данных и отображения только их подмножества.Как бороться с несколькими одновременными вызовами REST в AngularJS?

Для каждого взаимодействия (кликов) с диаграммами, я делаю вызов REST на сервер (с использованием углового $ http.get) для извлечения соответствующих данных и асинхронно обновлять таблицу.

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

Итак, мой вопрос:: как я могу обрабатывать несколько и одновременных асинхронных вызовов REST в Angular? Есть ли механизм (идентификатор корреляции или так далее), чтобы быть уверенным, что данные, которые я покажу, являются последними?

Спасибо!

+0

Не могли бы вы хотя бы сказать мне, почему я проголосовал? – Jason

+1

вы можете отправить временную метку от клиента, если вам нужно сделать много параллельных вызовов и вернуть эту метку времени с ответом тоже. Я не знаю, почему это было проголосовано. Может быть, потому что это не угловая проблема. – akonsu

ответ

1

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

Смежные вопросы