我很好奇是否有一个库或项目为IndexedDB或WebSQL提供通用接口,具体取决于用户的浏览器支持 . 如果他们使用Chrome / Safari,请使用WebSQL,如果他们使用的是Firefox或Internet Explorer,请使用IndexedDB .
this question的海报似乎有自己开发的解决方案,但没有提供任何源代码 .
我很好奇是否有一个库或项目为IndexedDB或WebSQL提供通用接口,具体取决于用户的浏览器支持 . 如果他们使用Chrome / Safari,请使用WebSQL,如果他们使用的是Firefox或Internet Explorer,请使用IndexedDB .
this question的海报似乎有自己开发的解决方案,但没有提供任何源代码 .
6 回答
您可能想要使用Lawnchair,这是众所周知的,正如Guido Tapia在您链接的问题中所提到的那样 .
要么是,要么使用他的picnet.data.DataManager解决方案 .
另外看看persistence.js .
JasonCasden在他的演讲In-browser storage and me上分享了大量的库/包装器 . 这是清单:
为了确切的目的,我写了YDN-DB . 它是IndexedDB,WebSql和localStorage的数据库包装器,构建在闭包库的顶部 .
目标
美丽的API,用于安全可靠的高性能大型Web应用程序 .
功能
支持IndexedDB,Web SQL和localStorage存储机制 .
经过良好测试的闭包库模块 .
支持版本迁移,加密,query和transaction .
每个方法调用都是一个原子事务 . 所有方法都是异步的 .
遵循通常的javascript礼节,如:单个命名空间,没有全局,没有错误通配(除非我们在doc中告诉你),没有eval,参数化查询,这就是这个,编码错误抛出错误 .
JQuery插件可用(参见下载部分) .
基本用法
将最新的缩小JS脚本(请参阅下载部分)导入HTML文件 . 这将在全局范围内创建单个对象,调用ydn.db.Storage .
查询
使用查询计算平均值
关键查询
交易
加密
可以使用SHA-1密码选择性地加密字符串值数据 .
看看这个:https://github.com/axemclion/IndexedDBShim
它是使用WebSql启用IndexedDB的polyfill . 我使用它并且我认为它非常好,但是作为每个解决方案,它都有一些限制,尽管你几乎可以随意开发它而不会出现大问题 .
问题得到解答,我只是想分享更新 .
2012年5月JayData已经发布,这是JavaScript的统一数据访问库,有助于管理IndexedDB,WebSQL,SQLite,MongoDB,HTML5 localStorage数据库和Facebook,OData,WebAPI,YQL数据服务中的数据JavaScript Language Query syntax .
从WebSQL更改为IndexedDB意味着仅更改存储提供程序的类型:
如果未指定提供程序,则库将按以下优先级顺序(WebSQL,IndexedDB,HTML5 localStorage)检测浏览器/设备的可用存储 .
免责声明:我是开源JayData项目开发团队的成员
我希望你(OP)对你接受的答案中建议的解决方案感到满意 .
对于仍在寻找有能力的解决方案的人(可能包括或不包括OP的组),请查看BakedGoods .
它是一个库,它 Build 了一个统一的接口,可用于在所有本机和一些非本机客户端存储设施中进行存储操作 . 它还保持了每个人为用户提供的灵活性和选择 .
有了它,在任何数据库类型的支持下进行存储操作都是......
...为两种数据库类型指定适当的操作选项和等效配置:
......并进行操作:
其简单的界面和无与伦比的存储设施支持是以缺乏对某些特定存储设施配置的支持为代价的 . 例如,它不支持在具有多列主键的WebSQL表中进行存储操作 .
因此,如果您大量使用这些类型的功能,您可能希望在其他地方寻找 .
哦,为了完全透明,BakedGoods由你的真正维护:) .