JS图像预加载阻塞了吗?
-
11-09-2019 - |
题
我正在使用 jQuery插件称为Lightbox (顺便说一句)。问题是,我正在外部站点上访问图像,我认为它们是 阻止灯箱预加载.
具体来说,我已经确认Picasa给预加载器一个404(使用Firebug),但是如果我右键单击“ firebug”“ Net”选项卡中的失败请求,则“在新选项卡中打开”,图像可以正加载。
除非我已经查看了Picasa的任何图像,否则会发生这种情况(在这种情况下,我相信它们是从摩托的缓存中拉出的,而不是再次加载它们)
浏览器与预加载器(也来自Firebug)发送的标头之间有很少的区别:
预加载器的“接受”标题是:
image/png,image/*;q=0.8,*/*;q=0.5
VS直接在浏览器中加载图像:
text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
我怀疑这是远程服务器可以将浏览器请求与JavaScript区分开的一种方式。你怎么看?
另外,这是插件的预加载代码...以防万一
// Image preload process
var objImagePreloader = new Image();
objImagePreloader.onload = function() {
$('#lightbox-image').attr('src',settings.imageArray[settings.activeImage][0]);
// Perfomance an effect in the image container resizing it
_resize_container_image_box(objImagePreloader.width,objImagePreloader.height);
// clear onLoad, IE behaves irratically with animated gifs otherwise
objImagePreloader.onload=function(){};
};
objImagePreloader.src = settings.imageArray[settings.activeImage][0];
更新
显然,皮萨(Picasa
解决方案 2
解决方案
PICASA会让外部站点加载图像宽度高达800px ...如果您尝试使用比外部域上的图像(不是picasaweb.google.com),则只需获得404
对我来说幸运的是800px足够了...我只是想加载原件,您根本不允许这样做哈哈
其他提示
您始终可以将预加载的IMG标签添加到隐藏DIV中的DOM,而不是使用JavaScript加载它们。这样,浏览器将它们“自然”加载。
不隶属于 StackOverflow