应用程序的工作原理
目前正在开发一个应用程序,该应用程序用于探索 5 个地区的活动。每个活动都表示为具有大量属性的 JS 对象。可以通过各自选项卡中的不同过滤器查看活动,例如类别或地图。在每个主过滤器内,都有用于过滤日期、区域、可访问性等的选项。
挑战
设备上需要存储大量的 JSON,iOS 和 android都需要支持。在最好的情况下,数据需要与数据库同步,并且所有数据都需要在设备上可用。应用程序需要敏捷才能获得良好的体验,这意味着获取数据需要尽可能快。此外,过滤数据需要尽可能快。
到目前为止考虑的可行解决方案(还没有完全削减它)
MongloDB与MongloDB Titanium Store 适配器,银弹?
这种方法起初似乎是灵丹妙药。尽管该项目看起来很有希望,但它是由一位英勇的黑客维护的,并且该项目需要一些文档。我检查了源代码,并通过 API 破解了我的方式,但无济于事,console.log 和 jasmine 测试这次不会削减它。更重要的是,它还没有完全完成,并且缺少与 MongoDB 相比的功能。一个伟大的项目,我希望它能够更受欢迎,并有足够的能力在未来帮助绝望的钛开发商。
JSONDB , 仅适用于 iOS
这个应用程序确实需要在两个平台上运行,iOS 和 android,所以没有理由尝试这个。此外,JSONDB 只能在单一上下文中工作,这也是一个严重的问题。
Ti Filesystem 和 JSON.stringify + JSON.parse,内存效率不高
保存一小部分已保存项目的可行解决方案,这也是应用程序中的一项功能。但是在其他帖子中,已经注意到 android 使用 JSON 方法的内存限制问题。虽然这可能不是我最不关心的问题,但总体内存效率将是一个大问题。我从来没有见过 Titanium 的文件读写性能基准,所以我不确定读写的影响有多大。过滤大对象也是一个大问题,underscore不会管理这种大数据。无论我选择哪种方法,迭代大对象都是一个大问题。
大屁股全局对象
几乎与文件系统相同的方法,只是将其保存在全局中。这有同样的问题,只是一种明显的不道德做法。
SQLite,糟糕
高度以文档为导向的 JSON 数据到 SQlite,听起来比 samsung galaxy fanboys 还要糟糕。对此有何反馈?
多个文件 + 需要维护的 SQLite + 延迟加载、独角兽和彩虹?
迫切需要一个解决方案,我可能会在写这篇文章的过程中遇到一些事情。可能有 10-16 个主要类别,每个类别有 1 到 4 个子类别。将子类别的所有活动保存在它自己的文件中,这是一个非常纤细的 JSON。浏览类别,每个子类别都呈现在它自己的 TableViewSection 中,每个子类别根据用户向下滚动的程度独立附加到表格中,有效地延迟加载内容。只有一个非常快速的文件读取。在这个视图中,添加更多子过滤器只会影响已经加载的项目,并且迭代这些项目是合理的。
更新数据也很有效,只更新有变化的文件。SQLite 数据库可以维护所有具有到期日期的活动的日期,它可以为即将到来的 7 天或一个月动态构建自己的 JSON 文件。这将使日历视图在大多数情况下都非常流畅。不过,选择未来的日期将是一场噩梦。
地图还是个问题……
如果您已阅读所有这些内容,谢谢。如果您有类似的经验,或者可能正在做某事,请随时回复!我必须停止写作,停止编码并开始睡觉。