【发布时间】:2011-01-27 15:39:42
【问题描述】:
短版问题: 是否有适用于所有浏览器的 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,但不适用于任何其他 DOM。我试过 navigator.isLocallyAvailable :同样的结果。
还有其他选择吗?
【问题讨论】:
标签: javascript jquery caching lazy-loading