2015-10-08 17 views
6

Mam zadanie. Mam wywołanie serwera, aby uzyskać listę obrazów. Wraz z innymi informacjami muszę dodać te informacje, że pogoda została załadowana z pamięci podręcznej lub z serwera.Sprawdź, czy obraz został załadowany z pamięci podręcznej, czy nie.

Czy istnieje sposób, aby sprawdzić nagłówki w wywołaniu api? Jeśli pochodzi z pamięci podręcznej, otrzymuję kod statusu 200, ale otrzymuję dodatkowe informacje w ten sposób (z pamięci podręcznej). Jeśli nie jest to z pamięci podręcznej I tylko dostać kod statusu 200.

Obrazek 1 jest dla tych, co nie jest ładowany z pamięci podręcznej enter image description here

Następny obraz jest dla tych, które są ładowane z pamięci podręcznej. enter image description here

Mam odpowiedź, która już została udzielona lub jest duplikatem. Próbowałem tego rozwiązania i wydaje się, że nie działa. Również jest specyficzny dla chrome, szukam czegoś bardziej ogólnego, co powinno działać we wszystkich przeglądarkach. Mam nadzieję, że to wyjaśnia, dlaczego nie poszedłem na to rozwiązanie. Przeszukałem to zanim zapytałem tutaj.

Czekamy na odpowiedzi.

+0

Możliwy duplikat [Używanie image.complete do znalezienia obrazu zapisanego w pamięci podręcznej na chrome?] (Http://stackoverflow.com/questions/7844982/using-image-complete-to-find-if-image-is- cached-on-chrome) –

Odpowiedz

3

Będziesz musiał obsługiwać swoje powiązania obciążenia selektywnie. Możesz zweryfikować obciążenie, testując właściwość obiektu obrazu complete.

Na przykład:

$('.images_to_load').each(function(index, elem) 
{ 
    if (!elem.complete) { 
     $(elem).on('load', function(){ 
      console.log('image loaded from server'); 
     }); 
    } 
    else { 
     console.log('image loaded from cache'); 
    } 
}); 

Jak użyć tego kodu: Ważne jest, że masz tagów graficznych (bez atrybutu SRC) z klasy images_to_load na swojej stronie podczas wykonywania wyżej kod. Po dodaniu atrybutu src (adresu URL) będziesz mógł dowiedzieć się, czy obraz został załadowany z pamięci podręcznej, czy nie.

+0

Użycie '.complete' nie jest jednak konieczne? Poczekaj tylko na zdarzenie onload, które będzie "$ (elem) .on (" load ", function {});' tych dni. Lub nawet '$ (this) .on()' tutaj. – Shikkediel

+0

@Shikkediel, czy możesz opracować nieco więcej tutaj, proszę? Może spinet kodu lub JSFiddle? – mohsinali1317

+2

@Shikkediel Problem polega na tym, że 'load()' nie zawsze uruchamia się, gdy obraz jest pobierany z pamięci podręcznej w niektórych przeglądarkach. –

Powiązane problemy