2013-05-19 65 views
0

我有一个应用程序通过NSURLConnection以JSON对象的形式下载数据;然后它将数据显示给用户。由于任何时候都可能在服务器上创建新数据,因此“实现”并下载此数据的最佳方法是什么?检查服务器上的新数据

目前我正计划让应用程序每隔30-40秒下载一次所有数据,然后检查下载的数据与当前数据:如果相同,则什么也不做;如果不同,继续进行修改。但是,这似乎有点不必要,尤其是数据可能暂时不会改变。在创建新的服务器数据时是否有更有效的方式更新应用程序数据?

回答

1

如果服务器支持它,请使用ETag。

Wikipedia ETag
“如果该URL资源内容都没有改变,一个新的和不同的ETag分配。”

+0

Thankyou,我会看看这个 – Rambatino

0

您可以在服务器上散列数据,而客户端只需要检查这个散列。如果哈希已经改变,那意味着数据是不同的,是时候下载了。

或者有某种推送通知。

1

您可以发送一个HTTP HEAD请求到服务器,并将“If-Modified-Since”标头设置为您收到最后一个版本的时间。如果服务器正确地处理了这个问题,它应该在文件未更改时返回304(未修改);所以一旦它没有返回,你得到的文件和照常进行。 请参阅HTTP/1.1: Header Field Definitions

+0

我似乎无法访问链接:“请求被管理规则禁止。” – Rambatino

+0

对不起,有一个错字(由于缺少空间引用链接末尾)。它现在应该工作:)搜索“14.25 If-Modified-Since” –