2013-05-19 2 views
0

У меня есть приложение, которое загружает данные через NSURLConnection в виде объекта JSON; он затем отображает данные пользователю. Поскольку новые данные могут быть созданы на сервере в любой момент, каков наилучший способ «реализовать» это и загрузить эти данные?Проверка новых данных на сервере

На данный момент я планирую, что приложение загружает все данные каждые 30-40 секунд, а затем проверяет данные, загружаемые с учетом текущих данных: если это то же самое, ничего не делает; если он отличается, обрабатывайте изменения. Однако это кажется немного ненужным, тем более что данные могут не измениться какое-то время. Существует ли более эффективный способ обновления данных приложения при создании новых данных сервера?

ответ

1

Используйте ETag, если сервер поддерживает его.

Wikipedia ETag
«Если содержимое ресурса на этом URL-адресе когда-либо изменяется, назначается новый и другой ETag».

+0

Спасибо, я посмотрю на это – Rambatino

0

Вы можете хэш-данные на сервере, и клиенту нужно только проверить этот хэш. Если хэш изменился, это значит, что данные разные, и пришло время скачать.

Или имейте какое-то push-уведомление.

1

Вы можете отправить запрос HTTP HEAD на сервер с заголовком «If-Modified-Since», установленным на момент, когда вы получили последнюю версию. Если сервер обрабатывает это правильно, он должен вернуть 304 (Not Modified), пока файл не изменился; поэтому, как только он не вернется, вы получите файл и процедуру, как обычно. См. HTTP/1.1: Header Field Definitions

+0

Я не могу получить доступ к ссылке: «Запрос запрещен административными правилами». – Rambatino

+0

Извините, там была опечатка (цитаты в конце ссылки из-за недостающего места). Он должен работать сейчас. Искать "14.25 If-Modified-Since" –