【发布时间】:2011-06-23 00:15:04
【问题描述】:
我正在动态加载(大)图像以绘制到 html5 画布中,如下所示:
var t = new Image();
t.onload = ...
t.src = 'http://myurl';
但每隔一段时间想完全取消图像请求。
我想出的唯一方法是将src 设置为''。即
t.src = ''
这适用于许多浏览器,但似乎只有 Firefox 真正取消了对图像的 http 请求。
我使用Fiddler2 对此进行了测试,方法是禁用缓存并启用“模拟调制解调器速度”。然后运行a fiddle to test canceling a image request.(我很想听听其他关于如何测试它的想法)
我知道有办法取消所有请求 (as in this question),但我只想取消一个。
对其他方式(尤其是在移动浏览器上)有什么想法吗?
【问题讨论】:
-
提防
t.src = '',规范对应该发生的事情含糊不清。见nczonline.net/blog/2009/11/30/… -
对...一些浏览器正在向页面的 url(或基本 url)发出请求,以尝试使用
src=''加载图像。在 Firefox 下,设置t.src=null也会取消请求,但不会对其他请求执行任何操作。较新的(当前工作)规范说(在某些情况下)it should fire onerror... kindof. -
在 Firefox 下设置
src为内联图像也会取消之前的请求:t.src='data:image/gif;base64,R0lGOD...见this fiddle -
empty image src 使页面重新加载使您进入页面的请求。因此,当您在发布后到达页面时,浏览器将默默地重做 POST。这确实是一个很好的方式来射击自己。
标签: javascript jquery image canvas mobile-safari