我正在考虑构建一个HTML5应用程序,该应用程序需要从服务器下载SQLite数据库,然后在本地访问该数据库以便在离线时引用数据。
是否可以下载预先填充的SQLite数据库并使用HTML5在本地访问它?我无法找到任何关于此的示例或教程。
我目前的想法是构建网站,以便它可以在脱机时通过清单缓存文件运行(到目前为止没问题),但它还需要访问从a下载的预先填充的SQLite数据库服务器,这是我不知道如何处理的部分。
在线时,HTML5应用程序需要能够检查服务器的更新,重建清单缓存并再次更新数据库......
答案 0 :(得分:3)
HTML5和SQLite不是一回事。 HTML5的离线存储和Web SQL功能使用SQLite实现 - 但并非所有实现都使用SQLite。
话虽如此,简短的回答是:没有。
您应该通过执行以下操作来同步数据:....存储更新的时间戳,并通过JSON(或类似)来回传递数据。
答案 1 :(得分:1)
有a specification of a Web SQL Database提供类似SQL的界面,但遗憾的是它不再处于主动维护状态。但是,它在Chrome中实施,Opera和Safari(http://en.wikipedia.org/wiki/Web_SQL_Database)。这是a tutorial on web databases。
一种可能的替代方案,如果您的数据库小于5 MB(http://dev.w3.org/html5/webstorage/#disk-space)并且您可以使用类似字典/数组/散列映射的方式,则使用local storage。
因此,如果您的浏览器支持本地存储,那么我们的想法是将您的数据库存储为本地存储中的JSON字符串(本地存储只能存储字符串),并且只要您需要访问数据,您就可以加载+解析它。您需要以下工具:
// Test if you browser supports local storage
'localStorage' in window && window['localStorage'] !== null;
// Store value in local storage
localStorage.setItem(key, value);
// Load value from local storage
localStorage.getItem(key);
// Parse JSON to JavaScript object
JSON.parse('{"name":"John"}');
// Convert JavaScript object to JSON
JSON.stringify({"name":"John"})
大多数现代浏览器都支持原生JSON。对于旧版浏览器,有一个很好的JSON-js library。