0

目前,我正在构建一些移动应用程序(目前在 iOS 上,但后来在 Android 上),它们通过 Ruby on Rails 应用程序中的 ajax 调用(返回 JSON)检索信息。这显然也适用于使用其他源返回 JSON 数据的其他应用程序。

主要问题是何时存储数据以及何时仅使用 ajax 调用来检索数据。目前,我的应用程序不会在本地存储任何东西,而是需要对所有数据进行 ajax 调用。我认为对于这个例子,我们可以使用 Twitter 移动应用程序,这是一个很多人都熟悉的应用程序,并且有很多功能,我想知道他们是如何做到的(逻辑上比技术上更重要)。

问题:

1)当您登录时,您首先看到的是您的信息流中所有项目的列表。该列表可离线使用。这是否意味着当您最初登录时,Twitter 已经将您最后的所有 X(100 个?)流项目提取到本地数据库中,然后未来的视图只是从那里提取它?

2)如果您随后将手机置于飞行模式(或只是关闭移动数据)并单击其中一条推文,则会打开包含所有这些数据的推文页面。所以现在,看起来他们并没有在您每次访问推文页面时单独提取这些信息(这是我的应用程序当前所做的,需要一些时间来加载该数据并创建视图)。他们可能只是使用他们在创建流项目时提取的相同信息,这是否有意义?

3)用户。更好的做法是(例如在查看用户“个人资料”页面时)在本地存储用户数据,然后在未来访问时刷新,还是每次都通过 ajax 提取所有数据?理论上每个都需要一个ajax调用......

我认为这些是我现在的主要问题。如果有人对这些事情(或对移动存储的任何其他见解)有任何想法,那就太好了!如果有人需要我引用的任何内容的屏幕截图,请告诉我,我很乐意为您获取。

目前使用:

Titanium Appcelerator for iOS
Ruby on Rails 用于后端和远程存储

4

1 回答 1

0

好的,首先本地存储和设备缓存之间存在差异。

手机会缓存大量数据,这样就不必每次都用完您的数据计划。当您在 safari 上打开页面时,它的想法相同,转到主屏幕并返回 safari,它仍然存在。这不是本地保存的,它只是被 IOS 缓存了。

当您应该使用本地存储时,数据永远不会改变,以 twitter 为例,在第一次启动时,它会下载您当前的活动,如果其中一个包含链接,那么它将生成一个新请求,如果您有关掉蜂窝数据还是可以点击链接,这不是因为推特已经在本地存储了,而是因为IOS暂时缓存了它,以避免多次下载。twitter 可以很好地在本地存储你们中的一些活动,但至少从我所见,它从最近开始存储它们的最大限制,它会经常下载其余的活动。

一般来说,如果数据基于网络,则可以使用 ajax 调用,这是大多数人所做的,本地存储是指仅在设备上创建/查看数据(如记笔记的应用程序)。如果您希望提供本地存储,以便某人可以离线查看那里的活动,那很好,但这不是必需的功能。

如果用户经常一遍又一遍地请求相同的数据并且它不会经常更改,大多数人只会开始考虑这一点,那么您将需要开发一个最后修改的系统,在那里您发送一个 ajax 调用以查看是否有任何新内容,如果不是从本地读取。如果数据是动态的并且经常更改,请坚持使用 ajax 调用

于 2012-06-20T13:50:43.893 回答