/ / iPhone: зображення з кеш-пам'яті з Інтернету - як дізнатися, що віддалене зображення змінилося? - iphone, зображення, facebook, кешування

iPhone: зображення з кеш-пам'яті з Інтернету - як з'ясувати, чи змінилося віддалене зображення? - iphone, зображення, facebook, кешування

Я завантажую фотографії профілю з Facebook, кешую їх на диску і завантажую їх у клітинки UITableView.

Тепер я задаюсь питанням, як я можу дізнатись, коли хтось змінив свою / її фотографію профілю на Facebook, що мені потрібно завантажити нове зображення з Інтернету, замість того, щоб використовувати один кешований диск.

URL-адреса зображення завжди однакова. Чи є легкий спосіб це зробити, не завантажуючи зображення та не порівнюючи його з локальним файлом?

Відповіді:

1 для відповіді № 1

Профіль користувача доступний на https://graph.facebook.com//картина. Ця URL-адреса ніколи не змінюється.

Коли запит здійснюється на цю URL-адресу, він переспрямовуєна URL, унікальний для кожного зображення. Якщо ваша бібліотека завантаження належним чином впроваджує кешування та перевірку заголовків, ви отримаєте назад 302 і знаєте, що зміст не було змінено.

ASIHTTPRequest є однією з таких бібліотек. Він може бути налаштований на завантаження зображення профілю, зберігання на диску, а потім тільки запит, щоб побачити, чи змінилося зображення, без завантаження всього зображення.


1 для відповіді № 2

Якщо ви зберігаєте локальний профіль профілю користувача, отримайте профіль "updated_time" http://developers.facebook.com/docs/reference/api/user/ Якщо його значення було змінено, оновіть зображення профілю. Вам не потрібно "cron" це завдання або перевіряти кожен раз, коли користувач підключений - передплатити це поле в API в режимі реального часу.


0 для відповіді № 3

З моєї перевірки URL-адреса профілю facebook змінюватиметься кожного разу, коли користувач змінить його профіль. Ви можете перевірити це самостійно, але для неї немає документації. Використовуйте це з власним ризиком :)


0 для відповіді № 4

Використовуйте оновлення Facebook у режимі реального часу: http://developers.facebook.com/docs/reference/api/realtime/

Це не тривіально для реалізації, але може бутидуже корисно. Коли у мене є час, я планую зробити щось подібне: налаштувати сервер, який приймає зворотні виклики. При отриманні зворотного дзвінка фіксуйте час оновлення об'єкта. Потім я також встановлюю кінцеву точку, яку будь-який клієнт міг би отримати, передаючи будь-який ідентифікатор юридичної особи, який він хотів, і він поверне останнє оновлення, це може бути XML або JSON. Таким чином, вам доведеться робити два речі 1) Спочатку додайте свій список переглянутих об'єктів до мого сервера. 2) Щоб перевірити наявність оновлень, створіть єдиний дзвінок із зазначенням ідентифікатора особи та поверніться до списку, коли останнім часом оновлювалися ідентифікатори, і оновити кеш відповідно.

Це буде здорово, якщо б я міг зробити таку річ загальнодоступною, чи не так ?-)