小编Mat*_*ieu的帖子

后加载:检查图像是否在浏览器缓存中

简短版本问题: 是否有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"));
    });
});
Run Code Online (Sandbox Code Playgroud)

问题是:第一次加载后,缓存后加载的图像.但是如果页面加载需要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"));
    });
});
Run Code Online (Sandbox Code Playgroud)

它适用于Mozilla的DOM,但它不适用于任何其他DOM.我试过navigator.isLocallyAvailable:相同的结果.

还有其他选择吗?

javascript jquery caching lazy-loading

27
推荐指数
3
解决办法
2万
查看次数

标签 统计

caching ×1

javascript ×1

jquery ×1

lazy-loading ×1