kiedy przyłączyłem się do wywiadu, zadano mi pytanie, nie wiedziałem, jak na nie odpowiedzieć.jak sprawdzić, czy obraz został zapisany w pamięci podręcznej w js?
Czy znasz kluczową kwestię tego pytania?
kiedy przyłączyłem się do wywiadu, zadano mi pytanie, nie wiedziałem, jak na nie odpowiedzieć.jak sprawdzić, czy obraz został zapisany w pamięci podręcznej w js?
Czy znasz kluczową kwestię tego pytania?
Sprawdź, czy atrybut obiektu Image
complete
jest true
:
function is_cached(src) {
var image = new Image();
image.src = src;
return image.complete;
}
wydaje się działać (choć będzie to załadować obraz, jeśli nie jest w pamięci podręcznej, co może nie być czego chcesz):
> is_cached('http://cdn.sstatic.net/stackoverflow/img/sprites.png?v=3')
false
> is_cached('http://cdn.sstatic.net/stackoverflow/img/sprites.png?v=3')
true
można sprawdzić jak:
function is_cached(img_url){
var imgEle = document.createElement("img");
imgEle.src = img_url;
return imgEle.complete || (imgEle.width+imgEle.height) > 0;
}
//and check, returns true or false depending on cached or not
is_cached("http://www.somesite.com/some_image.jpg");
@JaredFarr ish - zakładam, że szukane słowo brzmi "te przypadki testowe przeszły". Dla mnie "wydaje się działać" oznacza, że nie wyszedłem mu z drogi, aby zbadać problem głębiej niż to uzasadnione. – aaaaaa
To nie sprawdza pamięci podręcznej. Sprawdza DOM, możesz to sprawdzić otwierając dwie zakładki, "sprawdzanie" w jednej zakładce (false) "sprawdzanie" ponownie na tej samej karcie (true), a następnie przechodzenie do drugiej zakładki i "sprawdzanie" (false), nawet jeśli powinien być buforowany. – Cheruvian