短版问题: 有没有在所有浏览器,或替代工作navigator.mozIsLocallyAvailable同等功能?后负荷:检查如果图像是在浏览器缓存
龙版:)
嗨, 这里是我的情况: 我要实现对asp.net MVC的的HtmlHelper扩展,轻松处理图像后加载(使用jQuery)。
因此,我使用“alt”属性中指定的源渲染带有空图像源的页面。 我在“window.onload”事件之后插入图像源,并且效果很好。
我做了这样的事情:
$(window).bind('load', function() {
var plImages = $(".postLoad");
plImages.each(function() {
$(this).attr("src", $(this).attr("alt"));
});
});
的问题是:第一装载后,后加载的图像缓存。但是,如果页面需要10秒钟才能加载,则在此10秒后将显示缓存的已加载后的图像。
所以我认为如果图像被缓存以立即显示它们,则在“document.ready”事件中指定图像源。
我发现这个函数:navigator.mozIsLocallyAvailable来检查图像是否在缓存中。下面是我用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"));
});
});
它适用于Mozilla的DOM,但它并不适用于其他任何一个。我尝试了navigator.isLocallyAvailable:结果相同。
有没有其他的选择?
我认为这将打破时缓存过期...您需要在localStorage中存储响应头文件(需要ajax调用)的过期日期,例如,在logCache中使用'localStorage [src] = expires'并在缓存中使用'now
Corin
2011-07-03 05:58:11
第二个想法可能不是一个大问题,因为我们正在讨论图像...... – Corin 2011-07-03 05:58:57
如果手动清除缓存会发生什么? – Parth 2016-03-20 08:40:58