javascript - PhoneGap 上 Angularjs/Javascript 应用程序的最佳数据持久性?

标签 javascript angularjs sqlite cordova persistence

关闭。这个问题是opinion-based .它目前不接受答案。












想改进这个问题?更新问题,以便 editing this post 可以用事实和引用来回答它.


7年前关闭。







Improve this question




我希望在 PhoneGap 应用程序上找到 Angularjs 数据持久性的最佳实践。我在此之上使用了 Ionic Framework,但与这个问题无关,因为它只是建立在 Angular 和 Cordova 之上。

我喜欢 Angular 在数据持久性解决方案上保持灵 active ,这是有道理的,因为它是一个 Web 框架,而不是专门的混合应用程序框架……很想知道人们是如何解决这个问题的。

这是一个概述:

要求

  • 将本地数据库添加到应用程序构建以获取预加载的数据。这将超过 5MB 的数据限制。
  • 启动时从本地数据库加载数据。
  • 将更新的数据保存到本地数据存储以保持持久性。
  • 如果可能,首选无模式。
  • 简单的查询界面。如果性能不错,我可以将所有数据加载到内存中并为此使用标准的 Angular 过滤器。
  • 对象查询接口(interface)...类似于 ActiveRecord 的 ORM,而不必在我的应用程序中编写 SQL。
  • future 证明。我不想每次构建需要数据持久性的应用程序时都重新发明轮子。如果可能的话,我还想选择更标准的东西,这样我将来可以继续使用它……像 Indexeddb 这样的东西在这里很有意义。

  • 选项

    我一直在研究以下选项。你能提供任何关于这些的任何反馈吗?
  • Breezejs - 看起来更专注于服务器。有 SQLite 接口(interface)吗?
  • YDN-DB - 似乎是一个选项,但与其他一些选项相比似乎有点晦涩难懂。
  • JayData - 这仍然有效吗?担心它的商业方面。
  • Persistencejs - 这看起来很有希望。项目还活跃吗?
  • ngStorage - 这只是一个 localStorage 接口(interface)吗?它解决了5M的限制吗?
  • Angular-cache - 我可以用这个预加载数据吗?我可以保留数据多长时间?
  • localForage - 对此了解不多。它解决了5M的限制吗?
  • Pouchdb - 关注查询语言。不解决5M限制
  • Couchdb Lite - 关注查询语言。
  • WebSQL - 我不使用它,因为它似乎即将退出......加上 5M 限制。
  • Indexeddb - 有一个 shim 可为大多数主要浏览器构建兼容层。 5M 限制。如果我可以在 Sqlite 之上使用它,那可能对我来说是一个赢家,因为基于更多的标准。
  • 存储在 json 文件中 - 只需使用普通的旧对象,然后使用 Phonegap 文件 api 加载和存储序列化数据。每次我们想要保存时都必须序列化所有数据似乎很痛苦……但只要我可以使用 Angular 过滤器,这是一个选项。

  • 对不起,很长的帖子。我真的很想看到一些关于最佳实践的想法。希望有一种 Angular 方式来处理混合移动应用程序上的大数据持久性。

    谢谢

    最佳答案

    PouchDB 开发人员在这里。显然我有偏见,但这是我的看法:

  • 在 PhoneGap/Cordova 中绕过存储配额的最佳方法是使用 SQLite plugin适用于 iOS/Android。性能也往往更好,尤其是在 Android 上。 ( 编辑 :在现代后 Kitkat Android 中,它实际上更糟。)
  • WebSQL 有一个很好的查询语言,但是你想要面向 future ,也就是说,不要把自己束缚在一个死的标准上。还需要考虑 Windows Phone 和 Firefox OS。
  • 因此,如果您使用 PouchDB 并安装 PhoneGap 插件,它将跨浏览器工作,您将避免 iOS/Android 上的存储限制。赢?

  • 此外,我个人的经验是 Angular 与 PB&J 一样适合 PouchDB,因为 Angular 处理直接的 JSON 对象,Pouch 也是如此。 (将此与 Ember 和 Backbone 进行比较,它们具有必须从 JSON 导出/导入的自定义类——这有点棘手。)

    无论您选择什么,祝您好运!

    关于javascript - PhoneGap 上 Angularjs/Javascript 应用程序的最佳数据持久性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23715170/

    相关文章:

    javascript - 使用 MIDI.js 播放 MIDI 文件时如何调整速度?

    javascript - 在同一 Angular.js 应用程序中使用 'ui.bootstrap' 和 '720kb.datepicker' 模块时出错

    java - 如何在 TextView 中显示数据库查询?

    java - SQLiteOpenHelper 创建时出现 NullPointerException

    mysql - SQL 返回包含非 NULL 数据的字段列表

    javascript - 将数组缓冲区转换为字符串 : Maximum call stack size exceeded

    javascript - 更改 Angular ui.grid 中的 MenuItem 图标

    javascript - 实现鼠标拖动时出现问题

    javascript - 使用 AngularJS 在客户端存储信息

    angularjs - 自定义元素在 ng-repeat 中重复内容