我已经开发了一个称为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中有一些示例。再次,欢迎捐款。