更改图像的src属性是否会阻止图像下载?

Does changing the src attribute of an image stop the image from downloading?

本文关键字:图像 下载 属性 src 是否      更新时间:2023-09-26

假设我有两个手风琴选项卡。第一个加载数百张图片,并在页面加载时打开。

我希望能够阻止图像下载,如果用户单击第二个手风琴选项卡。通过js改变图像的src属性会阻止图像下载吗?或者请求只是继续直到完成而不显示在页面上?

我有一个脚本,加载SO标志在正好3秒,我已经为另一个问题。

http://alexturpin.net/slowimage/slowimage.php

使用它,我试图重现这个问题:

var img = new Image();
img.onload = function() {
    alert("loaded");
};
img.src ="http://alexturpin.net/slowimage/slowimage.php";
setTimeout(function() {
    img.src = "";
}, 1000);
http://jsfiddle.net/Xeon06/RrUvd/1/

从我收集到的,在Chrome中,onload不会被解雇,但浏览器继续显示一个旋转器,如果我去网络选项卡上找到我的图像并检查它的内容,它就在那里。所以我的答案是没有,图像仍然加载,至少在Chrome中。

这是一个有趣的问题,我建议你试着在尽可能多的浏览器中测试它,并写一些关于它的博客文章

您的浏览器使用特定的HTTP GET请求请求该图像,如在HTTP协议中指定。一旦请求,http服务器开始传输。

因此,它位于浏览器(作为http客户端)和http服务器之间。

由于http协议不考虑中止a的选项传输时,浏览器应该实现一种超标准的机制以编程方式中止连接。但是由于这个没有指定在任何标准下,我想你都找不到这样做的方法Javascript或任何客户端代码。


您可以尝试window.stop()来停止所有请求,但不是单个请求的人。


如果你想停止一个大图片的请求,你该怎么办可以做的是将图像加载到隐藏IFRAME内的文档中。的IFRAME的onload事件可用于将图像加载到main文档,此时它应该被缓存(假设您有

如果图像花费太长时间,那么您可以访问IFRAME的

内容窗口,并发出停止命令。

你需要有尽可能多的IFRAME元素,因为有图像可以同时请求。

直接从这里取&这里。

不确定是否会,就像其他评论一样。但我可以提出一种行之有效的方法。假设不是所有的图像都可见,只要在它们可见时设置正确的src属性即可。

所以当它不可见时,默认url为myGray.gif,当它进入视图时,设置为myImage.jpg。

当您关闭当前手风琴时,您可以再次将图像源设置回您的轻量级gif。(这可以防止在某些版本的ipad上出现与gc相关的错误)。