我正在开发一个使用phonegap/cordova 2.2
并希望将数据存储在 sql 类型数据库中的网络应用程序,但似乎由于html5尚未记录在案,并且存在三种竞争方法来保存大量数据,因此我应该使用哪种方法令人困惑。任何人都可以帮忙吗?
3 回答
您可以在此处查看存储文档:http: //docs.phonegap.com/en/2.3.0/cordova_storage_storage.md.html#Storage
对于查询语法,您可以查看 sqlite.org
HTML5 DB 在 iOS 和 Android 上运行顺畅,但在 Blackberry 中存在一些问题。Window Phone 7 不支持 HTML5 DB。
您可以在以下位置查看适用于 SQLite 的 PhoneGap 插件:
https://github.com/brodyspark/PhoneGap-sqlitePlugin-iOS
另请查看我自己的图书馆https://bitbucket.org/ytkyaw/ydn-db/wiki/Home。该库支持 iOS、Android 和 Windows Phone 8。
目标
漂亮的数据库 API,用于安全、健壮、高性能、可维护的大型 javascript Web 应用程序。
特征
- 支持 IndexedDB、WebSQL 和 WebStorage 存储机制。
- 支持异步 IndexedDB API 的所有功能。
- 经过良好测试的闭包库模块。
- 固定模式、自动版本控制、动态模式生成,同时保持多个连接(在选项卡或工作线程上)。
- 低级游标迭代,高级查询
- 每个方法调用都是一个原子事务,同时支持事务和高级事务工作流。
- 我们采用严格的 javascript 编码模式:没有全局,没有 eval,没有错误通配,参数化查询,所有公共方法和构造函数都是强类型,this is this,编码错误抛出错误。
- JQuery 插件可用(见下载部分)。
基本用法
var db = new ydn.db.Storage('db name');
db.put('store1', {test: 'Hello World!'}, 123);
db.get('store1', 123).done(function(value) {
console.log(value);
}
文件资料
如果您想要一个关系数据库选项,但又关心 WebSQL(该标准已被放弃并且未在许多浏览器中实现),另一个很好的选择是:SequelSphere
它是一个 100% 的 HTML5/JavaScript 关系数据库,可以跨浏览器工作,并使用 IndexedDB 或本地存储来保存数据。在 PhoneGap/Cordova 中,它将使用 IndexedDB,从而使您能够以允许 SQL 查询的关系方法存储“大量”数据。它是它自己的数据库引擎,不依赖于内置的(WebSQL)关系数据库。因此,如果您想将您的应用程序移植到其他地方,它也可以在所有浏览器和平台上运行。
它的 API 可在以下网站上轻松获得:
- 这是 API: SequelSphere API
- 基础文档: SequelSphere Basic
- SequelSphere 关于“本地存储”支持的文档:本地 数据存储和持久性