Как я могу кэшировать данные Javascript и JSON в моем приложении для iPhone? - PullRequest
4 голосов
/ 02 апреля 2011

Я разрабатываю приложение для iPhone на Titanium. В этом приложении я использую данные из удаленного API (который я разработал в Rails 3). Я хочу, чтобы пользователь как можно больше кэшировал данные API на своих телефонах. Что мне нужно, так это концепция кеширования. Каков наилучший способ сделать это? Природа данных в API заключается в том, что они должны быть актуальными. Потому что это контактные данные, которые могут измениться в любое время.

Понятия не имею, как будет работать процесс кеширования. Если вам кто-то может объяснить лучший способ управления процессом кэширования для API, я был бы более чем счастлив!

Я использую JSON и Javascript.

Ответы [ 4 ]

1 голос
/ 02 апреля 2011

"Природа данных в API заключается в том, что они должны быть актуальными. Потому что это контактные данные, которые могут измениться в любое время"

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

1 голос
/ 15 августа 2011

Titanium-кеш - это чистый код с модульными тестами, содержащий пример кода в файле readme. Я интегрировал это в свой собственный проект за считанные минуты, и он отлично работал.

0 голосов
/ 25 ноября 2011

Пара вариантов здесь.

1) Вы можете использовать ASIHTTPRequest и игнорировать заголовки кэша для кэширования всего. Когда ваше приложение используется, вы можете определить, был ли поврежден кеш. Если он ударил, вы запускаете запрос к серверу после попадания в кеш, чтобы запросить новые данные. Вы можете сделать это, добавив случайный параметр URL в конец URL, так как кеш отключает URL. Если у вас хорошее соединение и новые данные, загрузите его. В противном случае ничего не делайте, и ваш пользователь получит самые последние данные при использовании приложения в хорошем соединении

2) Делайте большую часть # 1, всегда обращаясь к кешу, но вместо того, чтобы запускать некэшируемую версию того же самого запроса к серверу после попадания в кеш, отключите проверку не кешируемой отметки времени, чтобы увидеть, обновлялись ли данные , Если это так, отключите не кэшируемый полный запрос API. Если этого не произошло или не удалось, вы ничего не можете сделать.

0 голосов
/ 02 апреля 2011

Я думаю, тип кэша зависит от приложения.

Вы можете кэшировать данные на:

  1. клиент;
  2. сервер;
  3. другой сетевой элемент.

Критическим моментом является обновление данных. Плохой алгоритм выдает противоречивые данные.

Вы можете найти интересную информацию по литературе распределенных систем

Bye

...