Я знаю python и базы данных, так как несколько лет назад.
Но я хочу улучшить свои ограниченные знания JavaScript. Для моего проекта игрушек я хочу использовать асинхронную очередь в веб-браузере и использовать для этого AngularJS.
В python есть класс, называемый многопроцессорный .Queue, который я использовал в прошлом.
Теперь я ищу что-то подобное, но в AngularJS
-
Шаг 1: В очереди вытягивает рабочие элементы (розовые круги). Только представление json bytes.
-
Шаг 2: Пользователь обрабатывает данные.
-
Шаг 3. Out-queue заботится о отправке результата на сервер.
Почему эта "сложная" настройка? Потому что я хочу, чтобы приложение было максимально гибким. В очереди необходимо предварительно загрузить некоторые данные, а очередь должна обрабатывать ответную связь.
Другим преимуществом является то, что при этой настройке приложение может обрабатывать отключение сервера или сети в течение нескольких минут.
Двусторонняя привязка данных AngularJS, которая немедленно обновляет данные, которые пользователь редактировал, не подходит для моего вопроса. Или я что-то пропустил. Я новичок в AngularJS.
Розовые круги на изображении представляют структуры данных JSON. Я хочу нажать каждый из них с одним запросом в браузер.
Пример:
Пользователь видит вопрос, затем ему нужно заполнить три поля. Например:
- ответ: Введите текст
- like-this-question: integer from 1..5
- трудность: целое число от 1..5
Данные должны быть помещены в очередь после использованного нажатия "отправить". Он должен немедленно задать следующий вопрос.
Вопрос:
Существует ли уже очередь производителей-потребителей для AngularJS? Если нет, как его реализовать?
Обновление
Отправка данных с клиента может быть реализована с помощью простого AJAX. В очереди, которая предварительно считывает данные, является более сложной частью. Хотя оба варианта могут использовать одну и ту же реализацию. Важно, чтобы клиент получал новые данные со сверхнизкой задержкой. Каждый раз очередь в очереди должна быть заполнена до 5 элементов, чтобы клиент не ожидал данных.
В моем случае не имеет значения, закрывается ли браузер и теряются ли элементы в очереди. Заполнение очереди в очереди доступно только для чтения на серверной части.
Я не фиксирован на AngularJS. Я рад изменить структуру, если есть веские причины.
Сохранение очереди в очереди между перезагрузками браузера может выполняться с помощью localStorage (html5)