在本地存储数据或仅在移动设备上使用ajax存储数据? - appcelerator

时间:2012-06-20 05:10:18

标签: ios database mobile titanium local-storage

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

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

问题:

1)当您登录时,您看到的第一件事就是您的信息流中所有项目的列表。该列表可以离线使用。这是否意味着当您最初登录时,Twitter已经将所有最后的X(100?)流项目拉到本地数据库中,然后将来的视图从那里拉出来?

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

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

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

目前正在使用:

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

1 个答案:

答案 0 :(得分:0)

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

移动电话会缓存大量数据,因此每次耗尽数据计划都不需要请求。当你在野生动物园上打开一个页面,进入主屏幕然后回到野生动物园时仍然存在同样的想法。这不是本地保存的,它刚被IOS缓存。

当您应该使用本地存储时,数据永远不会改变,使用twitter作为示例,在首次启动时会下载您当前的活动,如果其中一个包含链接,那么它将生成新请求,如果您关闭了手机数据并且仍然能够点击链接,这不是因为Twitter已将其存储在本地,而是因为IOS暂时缓存它以避免多次下载。 twitter可以很好地在本地存储你们的一些活动,但至少从我看到它存储它们的最大限制开始从最近,它经常下载其余的。

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

如果用户经常反复请求相同的数据并且不会经常更改,大多数人都会开始考虑这个问题,那么你需要开发一个最后修改过的系统,在那里发送一个ajax调用来查看是否存在任何新的,如果没有从当地读取。如果数据是动态的并且经常变化,请坚持使用ajax调用