Лучший способ синхронизировать локальный HTML5 DB (устройство хранения данных WebSQL, SQLite) с сервером (2 пути синхронизация) [закрытый]

Я разрабатываю приложение мобильного Интернета (для iPhone и Android) с локальной базой данных (использующий html5 webstorage), таким образом, мое приложение все еще применимо, когда пользователь в режиме офлайн.

Это работает отлично, но я хочу сохранить локальные данные на сервере. Таким образом, я должен синхронизировать локальный DB с DB на сервере. Синхронизация может только быть одним путем, но в будущем, я хотел бы синхронизировать его обоими способами (сервер <-> локальный DB).

Этот requierement выглядит очень распространенным (или будет распространено в будущем для приложения мобильного Интернета), но я не могу найти библиотеку, делающую это.

Я знаю, что Google делает это в их приложении мобильного Интернета (напр. Gmail), и я нашел проект WSPL проектом Google, но без источника для загрузки.

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

150
задан Samuel 30 March 2014 в 18:24
поделиться

1 ответ

  • Я создал небольшую JS lib под названием WebSqlSync для синхронизации локальной WebSql DB с сервером (клиент <-> сервер). Очень проста в использовании и интеграции в ваш код :

https://github.com/orbitaloop/WebSqlSync

  • Проект с открытым исходным кодом QuickConnect содержит JS библиотеку для синхронизации локальной HTML5 SQLite DB с серверной DB (MySQL или другой) :

http://quickconnect.pbworks.com/Using-Enterprise-Synchronization

Чтобы использовать эту библиотеку, вам нужно использовать DataAccessObject фреймворка для доступа к вашей DB. Она работает, сохраняя все SQL-запросы, примененные к БД (кроме select, конечно), и отправляя их на сервер. Это здорово для управления удалением, но немного тяжеловато, если у вас много обновлений, а сервер должен использовать тот же язык SQL...

  • Другой проект от QuickConnect - это нативная синхронизация SQLite (на Objective C для iOS или Mac OS и на Java для Android) :

http://www.quickconnectfamily.org/qcdbsync/. (Я думаю, он также хранит историю всех SQL-запросов)

  • И я только что нашел еще одну перспективную JS-библиотеку: persistenceJS

https://github.com/zefhemel/persistencejs

"persistence.js - это асинхронная Javascript библиотека объектно-реляционного маппера. Вы можете использовать ее как в браузере, так и на сервере (и вы можете обмениваться моделями данных между ними)."

У них есть модуль синхронизации БД: DOC of persistence.synch.js

(работает с HTML5 DB SQLite или Google Gears на клиенте, и MySQL на сервере)

  • И есть еще Impel.inTouch. Он выглядит очень простым в использовании (с php файлами в комплекте), но вы должны использовать фреймворк Mootools на стороне клиента :

http://impel.simulacre.org/api/Impel.inTouch

  • У Sencha также есть служба синхронизации: Sencha.io. Выглядит отлично, но зависит от фреймворка Sencha Touch:

http://www.sencha.com/products/io/

71
ответ дан 23 November 2019 в 22:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: