【发布时间】:2014-07-06 01:56:15
【问题描述】:
我希望在 PhoneGap 应用程序上找到 Angularjs 数据持久性的最佳实践。我在此基础上使用 Ionic Framework,但与此问题无关,因为它只是构建在 Angular 和 Cordova 之上。
我喜欢 Angular 在数据持久性解决方案上保持灵活性,这是有道理的,因为它是一个 Web 框架,而不是专门的混合应用程序框架……很想知道人们是如何解决这个问题的。
这是一个概述:
要求
- 为预加载数据添加本地数据库到应用程序构建。这将超过 5MB 的数据限制。
- 启动时从本地数据库加载数据。
- 将更新后的数据保存到本地数据存储中以保持持久性。
- 如果可能,首选无模式。
- 简单的查询界面。如果性能不错,我可以将所有数据加载到内存中并为此使用标准 Angular 过滤器。
- 对象查询接口...类似于 ActiveRecord 的 ORM,而不必在我的应用程序中编写 SQL。
- 面向未来。我不想每次构建需要数据持久性的应用程序时都重新发明轮子。如果可能的话,我还想选择更标准的东西,这样我以后就可以继续使用它……像 Indexeddb 这样的东西在这里很有意义。
选项
我一直在研究以下选项。您能就其中任何一个提供任何反馈吗?
- Breezejs - 看起来更专注于服务器。有 SQLite 接口吗?
- YDN-DB - 似乎是一个选项,但与其他一些选项相比似乎有点晦涩。
- JayData - 这仍然有效吗?担心它的商业方面。
- Persistencejs - 这看起来很有希望。该项目是否仍然有效?
- ngStorage - 这只是一个 localStorage 接口吗?是否解决了 5M 的限制?
- Angular-cache - 我可以用这个预加载数据吗?我可以将数据保留多长时间?
- localForage - 对此了解不多。是否解决了 5M 的限制?
- Pouchdb - 关注查询语言。不解决5M限制
- Couchdb Lite - 关注查询语言。
- WebSQL - 我不使用它,因为它似乎即将退出......加上 5M 限制。
- Indexeddb - 有一个 shim 可为大多数主流浏览器构建兼容层。 5M 限制。如果我可以在 Sqlite 之上使用它,那可能是我的赢家,因为基于更多标准。
- 存储在 json 文件中 - 只需使用普通的旧对象,然后使用 Phonegap 文件 api 加载和存储序列化数据。每次我们想要保存时都必须序列化所有数据似乎很痛苦......但只要我可以使用 Angular 过滤器,这是一个选项。
抱歉,帖子太长了。我真的很想看到一些关于最佳实践的想法。希望有一种 Angular 方式来处理混合移动应用程序上的大数据持久性。
谢谢
【问题讨论】:
标签: javascript angularjs sqlite cordova persistence