iOS и PHP: проверьте, есть ли на сервере обновления / в базе данных есть изменения

Фон

У меня есть приложение для iOS, которое извлекает данные с сервера и записывает их в файл с помощью NSFileManager, чтобы пользователю не приходилось снова получать данные с сервера каждый раз, когда они хотят посетить страницу. Данные, которые они получают, могут время от времени изменяться, поэтому я хотел бы обновить данные в файлах приложения, когда это произойдет.

Я использую php-страницы для своих веб-сервисов.

Вопрос

Какова техника проверки, изменились ли данные в моей базе данных, чтобы я знал, что мне следует обновить данные в приложении? Единственный способ, которым я могу думать, — это создать страницу php, которая проверяет, отличаются ли данные от того, что я хранил, но этот вид поражает цель сохранения информации в файлы в приложении. Я хочу свести к минимуму, когда пользователь общается с сервером, потому что в ситуациях, когда у пользователя нет службы, я все же хотел бы, чтобы были действительные данные, которые они могут видеть в приложении.

Пожалуйста, задавайте вопросы, если вы не до конца понимаете, чего я пытаюсь достичь. Спасибо!

1

Решение

Если вы хотите перечислить самые последние добавленные рестораны, например, вы можете:

  • Сохраните идентификатор самого последнего ресторана в IOS и отправьте его на сервер, когда вы хотите проверить наличие обновлений.
    • Если идентификатор не совпадает в БД, то вы должны обновить свой клиент.
    • Если это так, вы можете просто отправить ответ со статусом 304 (Не изменено), чтобы минимизировать объем обмена данными.

Если вы хотите кэшировать вычисленные данные, как, например, 10 лучших ресторанов с рейтингом пользователей, вы можете:

  • Сохраните хэш из 10 идентификаторов ресторана и отправьте его на сервер, когда вы хотите проверить наличие обновлений.
  • Сервер повторяет запрос и вычисляет текущий хеш для первых 10.
    • Если хеш другой, обновите ваш клиент
    • Если хеш такой же, отправьте ответ со статусом 304

NB: Если вычисления на стороне сервера дороги, вы можете подумать о более умном способе обнаружения изменений данных.

2

Другие решения

В этом случае вам необходимо определить свой идентификатор релиза на сервере и сохранить его в приложении. Например, когда вы вносите некоторые изменения в базу данных или происходит обновление со стороны сервера. Просто измените этот идентификатор выпуска с сервера.

На стороне IOS вы должны проверить этот идентификатор выпуска. Если идентификатор выпуска ios ниже, чем идентификатор сервера, обновите базу данных в локальном хранилище ios.

1

По вопросам рекламы [email protected]