我正在使用angularjs,phonegap和webSQL开发基于表单的应用程序。应用程序支持在两个网络状态下在线或离线提交表单。
网络在线模式: 所有提交的数据都直接发布到api。不需要webSQL事务。
网络离线模式:
提交的所有数据都保存到websql数据库表中,称为脱机数据为JSON字符串。
CREATE TABLE IF NOT EXISTS offline_data (id INTEGER PRIMARY KEY AUTOINCREMENT,data TEXT);
现在当网络联机时,offline _data表中的所有数据都提交给api并从表中删除。但它只删除使用api提交给服务器的第一条记录,即使在使用api成功保存到服务器后也不会删除下一条记录。 这是我用于将数据从webSQL表同步到服务器的代码。
DB.transaction(function(tx) {
tx.executeSql("SELECT * FROM offline_data", [], function (tx, results) {
var recordSetlength = results.rows.length;
if (recordSetlength) {
for (var i = 0; i < recordSetlength; i++) {
var v = results.rows.item(i);
Client.save(v.data, function (response) { // submits the data to server using api
if (response.success) { // If server response contains success=true [data saved successfully]
DB.transaction(function (tx) {
tx.executeSql("DELETE FROM offline_data WHERE id = ?", [v.id], function (tx, result) {
}, function (tx, error) {
});
});
} else {
$scope.alertClass = "warning";
$scope.alertMessage = response.message;
}
}, function (error) {
});
}
}
});
});
有什么问题?