Лучший способ периодически сохранять данные клиента JavaScript в базе данных сервера и оставаться в синхронизации? - PullRequest
0 голосов
/ 09 мая 2018

Я создал приложение, используя библиотеку Javascript D3. Пользователи будут постоянно нажимать и перетаскивать, чтобы часто менять графические элементы, и в настоящее время я сохраняю данные в 3-4 локальных объектах и ​​массивах javascript. Я хочу сохранять данные на сервер периодически, а не после каждого изменения. Также я хочу, чтобы они могли работать, если они не подключены. Двадцать лет назад я представлял, что делаю это вручную, когда на стороне клиента записи помечаются как «новые», «исправленные» и «удаленные». Каждые 10 секунд клиентские данные сохраняются через AJAX, и либо объект обновляется, либо выполняется оператор SQL. Идентификатор возвращается из базы данных и сохраняется на стороне клиента для отслеживания каждой записи для будущих изменений.

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

Отдельного мобильного приложения не будет. Я могу изменить мои javascript-объекты, чтобы они соответствовали требованиям json, если это будет необходимо. Я вижу, что существуют автономные первые фреймворки и javascript "контейнеры состояний". Redux попался на глаза, особенно когда я видел, как его использование росло на протяжении многих лет в соответствии с Google Trends. Я читал о стольких вариантах, и все это меня смущает. Вот несколько инструментов, на которые я смотрел: Store.js, now.js, indexedDB, couchDB, pouchDB, Cloudant, localForage, WebSQL, Polymer App Toolbox, Hoodie framework, Ionic и angular, и Loopback. Не говоря уже о XHR, веб-сокетах.

Я использовал MVC, как Laravel и Zend, оба с PHP и MySql. Интересно, смогу ли я интегрировать предложенное решение. Спасибо.

Связано: Как синхронизировать данные с удаленной базой данных в случае автономных первых приложений?

1 Ответ

0 голосов
/ 09 мая 2018

Сохранение данных локально с использованием PouchDb, а затем синхронизация их с базой данных CouchDb (или службой IBM Cloudant), когда сетевое соединение доступно, - это сложный путь для такого рода требований. Но ваш вопрос требует мнения, так что будет много других вполне обоснованных решений.

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