Pregunta corta pregunta: ¿Hay función equivalente navigator.mozIsLocallyAvailable que funcione en todos los navegadores, o una alternativa?Post-carga: verifique si hay una imagen en el caché del navegador
Versión larga :)
Hola, Aquí está mi situación: Quiero poner en práctica una extensión HtmlHelper para asp.net MVC que se encargan de la imagen después de la carga con facilidad (con jQuery).
Por lo tanto, renderizo la página con fuentes de imagen vacías con la fuente especificada en el atributo "alt". Inserto fuentes de imagen después del evento "window.onload" y funciona muy bien.
he hecho algo como esto:
$(window).bind('load', function() {
var plImages = $(".postLoad");
plImages.each(function() {
$(this).attr("src", $(this).attr("alt"));
});
});
El problema es: Después de la primera carga, imágenes post cargado se almacenan en caché. Pero si la página tarda 10 segundos en cargarse, las imágenes cargadas en la memoria caché se mostrarán después de estos 10 segundos.
Creo que para especificar las fuentes de imagen en el evento "document.ready" si la imagen se almacena en caché para mostrarlas de inmediato.
Encontré esta función: navigator.mozIsLocallyAvailable para verificar si una imagen está en la caché. Esto es lo que he hecho con jQuery:
//specify cached image sources on dom ready
$(document).ready(function() {
var plImages = $(".postLoad");
plImages.each(function() {
var source = $(this).attr("alt")
var disponible = navigator.mozIsLocallyAvailable(source, true);
if (disponible)
$(this).attr("src", source);
});
});
//specify uncached image sources after page loading
$(window).bind('load', function() {
var plImages = $(".postLoad");
plImages.each(function() {
if ($(this).attr("src") == "")
$(this).attr("src", $(this).attr("alt"));
});
});
Funciona en DOM de Mozilla, pero no funciona en cualquier otro. Intenté navigator.isLocallyAvailable: mismo resultado.
¿Hay alguna alternativa?
Creo que esto se romperá cuando el caché caduca ... necesitaría almacenar la fecha de caducidad del encabezado de respuesta (que requeriría una llamada ajax) en localStorage. Por ejemplo 'localStorage [src] = expires' en logCache y' now
Corin
Pensándolo bien, esto probablemente no sea un gran problema ya que estamos hablando de imágenes ... – Corin
¿Qué sucede si la memoria caché se borra manualmente? – Parth