Als ich einem Interview beitrat, wurde mir die Frage gestellt, ich wusste nicht, wie ich darauf antworten sollte.Wie überprüft man, ob ein Bild in js zwischengespeichert wurde?
Kennen Sie den Schlüsselpunkt der Frage?
Als ich einem Interview beitrat, wurde mir die Frage gestellt, ich wusste nicht, wie ich darauf antworten sollte.Wie überprüft man, ob ein Bild in js zwischengespeichert wurde?
Kennen Sie den Schlüsselpunkt der Frage?
Überprüfen Sie, ob das complete
Attribut des Image
Objekt ist true
:
function is_cached(src) {
var image = new Image();
image.src = src;
return image.complete;
}
Es scheint zu funktionieren (obwohl es das Bild laden werden, wenn es nicht im Cache ist, was nicht sein könnte, was Sie) wollen:
> 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
Sie könnten prüfen, wie:
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 - Ich nehme an, der gesuchte Wortlaut ist "diese Testfälle bestanden". "Es scheint zu funktionieren" bedeutet für mich, dass ich mir keine Mühe gegeben habe, das Thema tiefer zu erforschen, als die Frage gerechtfertigt ist. – aaaaaa
Dies überprüft nicht den Cache. Es überprüft das DOM, Sie können dies überprüfen, indem Sie zwei Tabs öffnen, auf einem Tab "checken" (falsch), auf dem gleichen Tab erneut prüfen (true) und dann zum zweiten Tab gehen und "checken" (false), obwohl es sollte zwischengespeichert werden. – Cheruvian