我开发了一个名为WebSqlSync的通用同步解决方案。
它不依赖于任何框架。它可以在这里找到:[https://github.com/orbitaloop/WebSqlSync]
README文件的摘录:
WebSqlSync
自动将本地WebSql数据库(导航器中的SQLite)同步到服务器。 (双向同步:客户端< - >服务器)
很容易集成到您现有的应用程序,非常容易使用(2个函数调用:initSync和syncNow)
用法
初始化
您需要初始化lib(例如,在每次启动时)。
它将自动创建2个表(如果它们尚不存在,一个用于存储所有新的或已修改的元素(表new_elem),另一个用于存储上次同步的日期(表sync_info)。它还将创建SQLite触发器 为了观察要同步的表的INSERT或UPDATE(在new_elem表中自动插入修改后的元素):
DBSYNC.initSync(TABLES_TO_SYNC, webSqlDb, sync_info, 'http://www.myserver.com', callBackEndInit);
其中TABLES_TO_SYNC是您要与服务器同步的表的列表,例如:
TABLES_TO_SYNC = [
{tableName : 'table1', idName : 'the_id'},
{tableName : 'table2'} //if idName not specified, it will assume that it's "id"
];
同步
要启动同步,您需要调用syncNow函数。 您可以每隔X秒调用一次,或者在某些更改后调用它,例如:
DBSYNC.syncNow(callBackSyncProgress, function(result) {
if (result.syncOK === true) {
//Synchronized successfully
}
});
这就是你需要在客户端做的一切。 在服务器端,您需要编写自己的解决方案(但并不复杂)。 并且有一些例子在PHP&Java的。 再次,欢迎捐款。