javascript - navegadores - limpiar cache navegador jquery
¿Usa image.complete para encontrar si la imagen está en caché en Chrome? (1)
He reescrito tu código en JavaScript, para hacerlo más independiente en jQuery. La funcionalidad central no ha cambiado. Fiddle: http://jsfiddle.net/EmjQG/2/
function cached(url){
var test = document.createElement("img");
test.src = url;
return test.complete || test.width+test.height > 0;
}
var base_url = "http://www.google.com/images/srpr/nav_logo80.png"
alert("Expected: true or false/n" +
cached(base_url)
+ "/n/nExpected: false (cache-busting enabled)/n" +
cached(base_url + "?" + new Date().getTime()));
//false = not cached, true = cached
La primera vez, obtengo false and false
. Después de ejecutar el código nuevamente, obtengo true and false
.
.complete
y .height
+ .width
da los resultados esperados (FF 3.6.23, Chromium 14). Es muy probable que haya desactivado el almacenamiento en caché en su navegador Chrome. De lo contrario, compruebe los encabezados HTTP de su imagen servida (¿Está presente el Cache-control
?). Este encabezado existe en la muestra de Google
Si desea detectar cuándo se ha terminado de cargar (no) una imagen, eche un vistazo a esta pregunta .
He estado tratando de averiguar si una imagen externa está almacenada en caché en el navegador con js, este es el código que tengo hasta ahora:
<html>
<head></head>
<body>
<script src="http://code.jquery.com/jquery-1.4.2.min.js"></script>
<script>
function cached( url ) {
$("#imgx").attr({"src":url});
if(document.getElementById("imgx").complete) {
return true;
} else {
if( document.getElementById("imgx").width > 0 ) return true;
}
return false;
}
</script>
<img id="imgx" src="" />
<script>
$(document).ready(function(){
alert(cached("http://www.google.com/images/srpr/nav_logo80.png"));
});
</script>
</body>
</html>
Funciona perfectamente en Firefox pero siempre devuelve falso en Chrome.
¿Alguien tiene alguna idea de cómo hacer que funcione con Chrome?