2014-01-31 3 views
1

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

Когда приложение загружается, вы получаете список классов (от 30 до 50). Когда вы переходите к классу, вы получаете список учеников класса (от 20 до 25) и другие статистические данные. Затем вы можете перейти к каждой странице студента, чтобы увидеть их действия.

Мой вопрос связан с API. Лучше ли загружать все данные вперед в одном запросе, который включает в себя все классы и статистику, которые включают всех их учеников, которые включают все их статистику и действия, или я должен загружать данные по запросу? Список классов на странице классов, список учеников класса X и статистика на странице класса X и т. Д.?

ответ

1

Попытайтесь оценить объем данных в Kilobytes, так как это является основным узким местом в мобильных приложениях (вы создаете отзывчивое одностраничное приложение, верно?). Ответ может быть между: загрузкой классов и учениками, а затем информацией о клиенте.

Тогда старайтесь предсказать поведение пользователя. Они больше обеспокоены определенным классом в целом, их специфической страницей студента и т. Д. Если классы и список учеников используются только как селекторы для доступа к странице студента, загрузите как можно меньше деталей о них до страницы ученика.

Может ли ваш пользователь потерять соединение при использовании приложения? В этом случае загружайте как можно больше, пока можете.

Рассмотрите также использование опционных поисковых ящиков (автоматическое предложение). В этом случае вам не нужно загружать все данные заранее, но только при выборе элемента.

+0

Спасибо. На самом деле мы работаем над отдельными приложениями: настольной версией и родным мобильным телефоном. Из-за нестабильности беспроводных соединений мобильная версия будет нуждаться во всех данных, чтобы они могли работать в автономном режиме, поэтому загрузка этого способа будет хорошей идеей. Но настольная версия немного отличается. Не могли бы вы порекомендовать похожие вызовы с разным объемом данных? Например, используя 'GET/classes' для получения всего и' GET/classes' с параметром students = 0, чтобы получить только список классов? –

+0

Конечно, необходимо указать несколько уровней деталей с параметрами. Я не рекомендую иметь разные API для настольных или мобильных версий. – Mart

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