Używam skryptu JavaScript, który mówi mi, czy określone adresy URL obrazu są buforowane w pamięci podręcznej przeglądarki użytkownika. Używam tego, ponieważ tworzę tablicę niezbuforowanych obrazów, które będą ładowane osobno, po wykonaniu ważniejszego procesu. Ten skrypt został napisany specjalnie dla Google Chrome, więc nie potrzebuję rozwiązania opartego na różnych przeglądarkach.Jak sprawdzić, czy obraz jest pobierany z pamięci podręcznej WWW użytkownika lub jak uzyskać dokładny czas ładowania?
Moja obecna funkcja sprawdza czas ładowania obrazu i jeśli jest ona mniejsza niż kilka milisekund (obecnie 25 ms), zakładam, że jest ona pobierana z pamięci podręcznej.
Różnicę między obrazami z pamięci podręcznej i bez pamięci podręcznej można łatwo wykryć, sprawdzając panel Zasoby w Narzędziu programistów Chrome. Po ustawieniu czasu ładowania Chrome poinformuje, czy plik został pobrany z pamięci podręcznej, czy nie, wyświetlając podpowiedź wyglądającą tak: xx ms Latency, xx ms Download (from cache)
.
Zauważyłem, że w niektórych przypadkach czas opóźnienia jest dość długi (na przykład 64 ms przez zaledwie 2 ms czasu pobierania) i powoduje, że funkcja wykrywania jest bezużyteczna, ponieważ całkowity czas ładowania przekracza mój próg. Zwiększenie progu nie jest możliwe, ponieważ małe i niezapisane obrazy mogą być również ładowane w tym samym czasie.
Teraz masz mój problem, tu idzie moje pytanie:
-Czy można sprawdzić w 100% dokładny sposób (np jak panel zasobów chrom), że plik pochodzi z cache? (Myślę, że jeśli robi to panel, tam musi być jakiś sposób, ale nie mogłem go znaleźć w Internecie)
Albo
-Czy istnieje sposób, aby rozdzielić dwa opóźnienia (tj Latency vs. Pobierz), aby móc sprawdzić tylko rzeczywisty czas pobierania? Obliczanie czasu spędzonego między rozpoczęciem ładowania obrazu a zdarzeniem onload
zwraca łączny czas.
Dziękuję za przeczytanie mojego pytania, a nawet jeśli nie masz dokładnego rozwiązania, myśli, pomysły, są mile widziane!
(PS: Nie jestem native speaker angielski, więc proszę nie wiń mnie za robienie błędów!)
Gael
Czy możesz udostępnić JavaScript? – Eldar