Database 更新我的Cordova/Phoengap数据库时?
我正在开发一个Cordova/Phonegap应用程序,其中包括一个与外部服务器(互联网)同步的数据库,数据库服务器将频繁更改,如何建议我保持应用程序的更新 我想到了两件事:Database 更新我的Cordova/Phoengap数据库时?,database,cordova,sql-update,web-sql,Database,Cordova,Sql Update,Web Sql,我正在开发一个Cordova/Phonegap应用程序,其中包括一个与外部服务器(互联网)同步的数据库,数据库服务器将频繁更改,如何建议我保持应用程序的更新 我想到了两件事: 创建一个名为version.txt的文件,其中包含版本号,因此我只需要在服务器上查看该文件,如果该文件包含更大的版本号,则运行更新内部数据库 制作一个带有版本号的表格,并执行与第1项相同的操作 你给我什么建议 谢谢 我在服务器上创建了一个端点,返回一个包含当前版本号的JSON对象,从而完成了类似的工作 当我的应用程序加载时
谢谢 我在服务器上创建了一个端点,返回一个包含当前版本号的JSON对象,从而完成了类似的工作 当我的应用程序加载时,它向端点发出请求,并将JSON返回值与设备中的localStorage变量进行比较 然后(如上面所建议的),如果JSON返回值大于localStorage变量,则更新数据库,然后将localStorage变量更新为当前JSON返回值 例如:
function updateDatabase () {
$.ajax({
url: 'http://your_web_site.tdl/databaseversion/',
cache: false,
type: 'GET',
success: function(result, status, xhr) {
var currentVersion = result.version;
if(!window.localStorage.getItem('localVersion') || window.localStorage.getItem('localVersion') < currentVersion) {
//UPDATE DATABASE CODE HERE
window.localStorage.setItem('localVersion',currentVersion);
}
else{
//NO NEED TO UPDATE
}
},
error: function() {
//CANNOT GET CURRENT VERSION FROM SERVER
}
});
}
谢谢,但这意味着什么:
设备中的localStorage变量
?localStorage是Cordova(以及html5规范)中提供的键/值(仅字符串)存储。您可以使用window.localStorage.setItem('key','value')
和window.localStorage.getItem('key')
。这允许您在应用程序中存储持久的变量,只有在清除应用程序缓存或卸载应用程序时,这些变量才会消失。在用户清除缓存(通过任何方式)的情况下,数据库也会被清除。因此,当您的检查运行时,它将以任何方式更新到最新版本。用户第一次运行应用程序时,变量为null,因此更新运行并设置变量。因此,如果使用的是清除应用程序数据,则应用程序会像第一次一样运行,检索最新数据并再次设置变量。即使是本机应用程序也是如此。我提供的示例将按预期工作。localStorage没有作用域,并且是全局可访问/可写的。对于首次使用load to work,您将不希望在示例中以外的任何地方定义它。语句if(!window.localStorage.getItem('localVersion')| | window.localStorage.getItem('localVersion')
正在检查变量是否还不存在或是否确实存在,检查值是否不匹配。在任何一种情况下,变量都将被设置(第一次或更新)为最新版本号。
{ version: 'X' }