Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 预加载的图像不在Chrome中显示_Javascript_Google Chrome - Fatal编程技术网

Javascript 预加载的图像不在Chrome中显示

Javascript 预加载的图像不在Chrome中显示,javascript,google-chrome,Javascript,Google Chrome,我正在预加载一些图像,然后在灯箱中使用它们。我遇到的问题是,虽然图像正在加载,但浏览器不会显示它们 这个问题是针对Chrome的。它在Chrome8-10中一直存在,我一直在断断续续地尝试修复它,但却一无所获 我读过这些类似的问题, 所有这些都详细说明了类似的行为,但在Mac版的Chrome中。然而,这是在Windows中发生的 所有其他浏览器似乎都很好 如果您打开了Firefox和Chrome,请在Firefox中加载页面,然后在Chrome中显示图像 使用Webkit webdev工

我正在预加载一些图像,然后在灯箱中使用它们。我遇到的问题是,虽然图像正在加载,但浏览器不会显示它们

这个问题是针对Chrome的。它在Chrome8-10中一直存在,我一直在断断续续地尝试修复它,但却一无所获

我读过这些类似的问题,


所有这些都详细说明了类似的行为,但在Mac版的Chrome中。然而,这是在Windows中发生的

  • 所有其他浏览器似乎都很好
  • 如果您打开了Firefox和Chrome,请在Firefox中加载页面,然后在Chrome中显示图像
  • 使用Webkit webdev工具栏之类的工具手动加载图像后,图像总是会显示出来
  • 所有的链接,图像等都很好和工作
  • 从Chrome中清除所有内容似乎没有任何区别(缓存、历史记录等)
如果有人有任何想法,这将是非常有用的,因为我在这里几乎没有选择

PS,如果有迟交的回复,请道歉,我明天休假一周!:D

更新 下面是预加载图像的javascript函数

var preloaded = new Array();
function preload_images() {
    for (var i = 0; i < arguments.length; i++){
        document.write('<');
        document.write('img src=\"'+arguments[i]+'\" style=\"display:none;\">');
    };
};
var preload=new Array();
函数preload_images(){
for(var i=0;i
更新

我仍然有这个问题,我已经删除了整个预加载图像功能。也许通过
document.write()
交付样式表不是最好的方式?

Chrome可能没有预加载它们,因为它在写入DOM时没有显示,所以它可能足够智能,可以意识到它不需要渲染。请尝试以下方法:

var preloaded = new Array();

function preload_images(){
    for (var x = 0; x < preload_images.arguments.length; x++)
    {
        preloaded[x]     = new Image();
        preloaded[x].src = preload_images.arguments[x];
    }
}
var preload=new Array();
函数preload_images(){
对于(var x=0;x
Javascript图像对象还有许多有用的函数,您可能会发现这些函数很有用:

onabort()

代码在用户中止时执行 下载图像

onerror()

代码在发生错误时执行 随着图像的加载(即:不 找到)。例子

onload()

该代码在图像被删除时执行 成功并完全下载


然后还有
complete
属性,该属性的true/false会告诉您图像是否已完全(预)加载。

结果表明,Chrome会考虑HTTP缓存,如果缓存未正确设置为过期,则会在预加载后立即丢弃任何预加载的图像

在我的例子中,我动态生成图像,默认情况下,响应发送到浏览器并立即过期

要修复它,我必须设置以下内容:

        Response.Cache.SetExpires(DateTime.Now.AddYears(1));
        Response.Cache.SetCacheability(HttpCacheability.Public);

        return File(jpegStream, "image/jpeg");

介意粘贴一些代码,让我们看看你是如何预加载的吗?将在20小时内添加赏金:)是的,在Chrome中预加载看起来比只添加图像要复杂一点!我通过PHP生成图像,我在想为什么Google chrome会丢弃预加载的图像。然后我发现我在过去设定了过期日期。谢谢你的信息,伙计。