2013-03-12 6 views

risposta

14

Verificare se l'attributo complete dell'oggetto Image è true:

function is_cached(src) { 
    var image = new Image(); 
    image.src = src; 

    return image.complete; 
} 

Sembra funzionare (anche se sarà caricare l'immagine, se non è nella cache, che potrebbe non essere quello che si vuole):

> 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 
+1

@JaredFarr ish - Presumo che il testo che stai cercando sia "passato questi casi di test". Per me "sembra funzionare" implica non aver fatto di tutto per cercare la questione più in profondità della domanda giustificata. – aaaaaa

+2

Questo non controlla la cache. Controlla il DOM, puoi verificarlo aprendo due schede, "verificando" in una scheda (false) "verificando" di nuovo nella stessa scheda (true) e poi andando alla seconda scheda e "verificando" (false), anche se dovrebbe essere memorizzato nella cache. – Cheruvian

3

si potrebbe verificare come:

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");