LeanCloud目前有很不错的数据存储服务,但是像Android/IOS客户端,很多时候除了需要云端数据存储、检索的服务之外还需要协调网络和本地缓存。虽然在网络数据获取方面的工作量减轻了很多,SDK用起来不用思考具体的细节,但是从LeanCloud得到数据之后依然要处理繁琐的本地数据库的插入、删除、更新。这导致体验上的巨大差异感。
举个例子吧:
比如我要在好友界面和朋友圈界面切换,当在好友界面获取过一次好友的头像url、昵称、性别等等信息了,就不需要再在朋友圈界面获取一遍同一个人的信息了,这时候需要我自己做本地的数据缓存,检索出所有已存在的人直接更新界面,而把本地缓存不存在的人,提交云端查询,回调出结果后再更新界面和本地数据库。
这是很常见的需求了,整个过程需要从LeanCloud存储的数据结构转换成我本地的数据结构,然后调用两套API去维护数据更新,有时候常常想如果LeanCloud也做本地缓存的功能该有多便捷,该是多么无缝的体验。
YY一下那样的SDK:
gameScore.saveInBackground(new SaveCallback() {
public void done(AVException e) {
if (e == null) {
// 云端保存成功
} else {
// 云端保存失败,输出错误信息
}
}
});//无论云端保存失败、成功与否,都会在本地保存。
gameScore.saveInBackgroundWithReTry(int n,SaveCallback callback);//若失败智能重试n次(如网络环境变化时重试、锁屏后重试),若n次失败则执行回调函数。
AVObject gameScore=query.getInBackground(xxx, GetCallback<AVObject> callback);
立马返回的gameScore是本地数据库查询的结果,马上返回。callback返回的是网络数据。
当然了,以上纯属YY,大概表达的就是这个建议……
-
创建时间
15年5月27日
-
最后回复
15年5月27日
-
1
回复
-
867
浏览
-
2
用户