/ / iPhone: obrazy z pamięci podręcznej w pamięci podręcznej z Internetu - jak się dowiedzieć, że zmieniono zdalny obraz? - iphone, obraz, facebook, buforowanie

iPhone: obrazy z pamięci podręcznej w pamięci podręcznej z Internetu - jak się dowiedzieć, czy zmieniono zdalny obraz? - iphone, obraz, facebook, buforowanie

Ładuję zdjęcia profilowe z Facebooka, buforuję je na dysku i ładuję je do komórek UITableView.

Teraz zastanawiam się, w jaki sposób mogę się dowiedzieć, kiedy ktoś zmienił swoje zdjęcie profilowe na Facebooku, że muszę załadować nowy obraz z sieci zamiast używać jednego dysku z pamięci podręcznej.

Adres URL obrazu jest zawsze taki sam. Czy istnieje lekki sposób robienia tego bez pobierania obrazu i porównywania go z plikiem lokalnym?

Odpowiedzi:

1 dla odpowiedzi № 1

Profil użytkownika jest dostępny pod adresem https://graph.facebook.com//obrazek. Ten adres URL nigdy się nie zmienia.

Po wysłaniu żądania do tego adresu URL przekierowujedo adresu URL unikalnego dla każdego obrazu. Jeśli biblioteka pobierania poprawnie implementuje buforowanie i sprawdzanie nagłówków, otrzymasz zwrot 302 i będziesz wiedzieć, że zawartość się nie zmieniła.

ASIHTTPRequest jest jedną z takich bibliotek. Można go skonfigurować do pobierania obrazu profilu, przechowywania go na dysku, a następnie tylko zapytanie, czy obraz się zmienił, bez pobierania całego obrazu.


1 dla odpowiedzi nr 2

Jeśli przechowujesz zdjęcie profilowe użytkownika lokalnego, pobierz profil "updated_time" http://developers.facebook.com/docs/reference/api/user/ Jeśli wartość się zmieniła, zaktualizuj zdjęcie profilowe. Nie musisz "cron" tego zadania, lub sprawdź za każdym razem, gdy użytkownik jest podłączony - zapisz to pole w interfejsie API aktualizacji w czasie rzeczywistym.


0 dla odpowiedzi № 3

Po sprawdzeniu adres URL profilu Facebook zmieni się, gdy użytkownik zmieni swój obraz profilu. Możesz to sprawdzić sam, ale nie ma na to żadnej dokumentacji. Używaj go na własne ryzyko :)


0 dla odpowiedzi nr 4

Użyj aktualizacji w czasie rzeczywistym na Facebooku: http://developers.facebook.com/docs/reference/api/realtime/

Nie jest to łatwe do wdrożenia, ale może byćnaprawdę użyteczne. Kiedy mam czas, planuję zrobić coś takiego: skonfigurować serwer, który odbiera callbacki. Po otrzymaniu oddzwaniania, przechwyć czas, w którym element został zaktualizowany. Następnie utworzę punkt końcowy, do którego każdy klient może uzyskać dostęp, przekazując dowolny identyfikator obiektu, którego chce, i zwróci najbardziej aktualny czas aktualizacji. Może to być XML lub JSON. rzeczy. 1) Początkowo dodaj listę obserwowanych podmiotów do mojego serwera. 2) Aby sprawdzić dostępność aktualizacji, wykonaj jedno połączenie z listą identyfikatorów jednostek i zwróć listę ostatnich aktualizacji identyfikatorów, a następnie odpowiednio odśwież pamięć podręczną.

Byłoby wspaniale, gdybym mógł publicznie udostępnić coś takiego, hę? :-)