有什么好的办法同步网络和本地core data缓存?

jackchen06 发布于 2013年11月05日
无人欣赏。

各位,有什么好办法来同步网络和本地core data缓存?如何知道本地已经是最新数据,有什么简单易行的方法或者第三方开源包吗?

共11条回复
tinyfool 回复于 2013年11月05日

召唤兽 @sycx 老师,如果还没上飞机的话

cheng.seattle 回复于 2013年11月05日

Restkit吧 但是沒有在Production code裡面用過

stoneman2011 回复于 2013年11月05日

我到现在都还没用上core data 呢? core data 好用不?

terryso 回复于 2013年11月05日

这个用Restkit很简单。。。我们项目一直在用。。。

terryso 回复于 2013年11月05日

想知道本地的缓存是否是最新数据,要服务器做ETag

jackchen06 回复于 2013年11月05日

5楼 @terryso 可以详细介绍一下etag吗?

terryso 回复于 2013年11月05日

6楼 @jackchen06 google一下吧,简单说就是服务器第一个返回数据时,带一个唯一标识给客户端,客户端下次请求要带上这个标识,服务器根据这个标识,判断这次请求有没有新数据,没有更新的话就直接返回304,客户端收到这个code就会知道服务端没有更新数据,然后直接从本地缓存读取数据。。。

nickel 回复于 2013年11月05日

客户端发送请求时,先读取本地缓存的文件获取时间,然后在请求里假如If-Modified-Since这个header,值就是缓存文件的时间(GMT格式)。然后服务器会自动根据If-Modified-Since所提供的时间与服务器所存储的文件时间比对,如果旧于客户端提供的时间则回复304,意思是没有更新,不用重新下载。

这是最基本的http通讯逻辑之一

terryso 回复于 2013年11月05日

8楼 @nickel 通过更新时间很多时候,是不太准确的,还是ETag比较好。。。

nickel 回复于 2013年11月05日

9楼 你说的对,不过etag如果对于客户端长期缓存的文件来说需要单独维护其etag,而时间不需要。这得看要求多准确了。

通常而言,现在的移动设备都是通过网络时间同步的,而服务器通常也会网络时间同步,以保证时间的准确性,所以通常而言问题不大。但是一定要保证非常准确的更新,当然是etag比较好,尤其如果是临时数据可以直接在内存维护etag就可以了。

terryso 回复于 2013年11月05日

10楼 @nickel 我们用Restkit,已经帮忙处理好,使用时很简单。。。

本帖有11个回复,因为您没有注册或者登录本站,所以,只能看到本帖的10条回复。如果想看到全部回复,请注册或者登录本站。

登录 或者 注册
[顶 楼]
|
|
[底 楼]
|
|
[首 页]