He estado tratando de averiguar si una imagen externa se almacena en caché en el navegador con JS, este es el código que tengo hasta ahora:Usando image.complete para encontrar si la imagen está en caché en cromo?
<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 false en el cromo.
¿Alguien tiene alguna idea de cómo hacerlo funcionar con Chrome?
¿Por qué debería importar si un activo está en caché o no? :/ – Matchu
W3C estándar no tiene ninguna API, por lo que es probable que esté utilizando algunos hacks específicos del navegador que no es bueno hacer – Ankur
Además, incluso si la imagen está almacenada en la memoria caché, es muy probable que la carga de la imagen sea asincrónica, y es poco probable que el navegador haya terminado de cargar y mostrar la imagen antes de ejecutar la siguiente línea de JavaScript. – RoToRa