gpt4 book ai didi

javascript - 图像未加载,但未触发 onerror 或 onabort

转载 作者:行者123 更新时间:2023-11-28 08:12:21 32 4
gpt4 key购买 nike

我正在下载大量图像,有时图像会“转义”脚本而不触发任何这些事件(不幸的是我没有实际的示例图像):

var img = new Image();
img.onerror = function() {alert("error")};
img.onabort = function() {alert("abort")};
img.onload = function() {alert("success")};
img.src = whateverurl;

是否有任何其他事件可能因超时或任何其他可能导致图像无法加载的事件而触发?

最佳答案

我在类似的情况下使用不同的网络浏览器(下载许多图像)并遇到了几个问题。所以,我的回答并不能解决你的问题,但也许你会得到一些启发。

New Ipad无法同时加载两个图像。这是一场灾难,因为如果我的一张图像卡在服务器端,整个应用程序就会卡住。如果我一次尝试更多图像,浏览器会安排它。更糟糕的是,我可以检测超时(我在设置图像的 .src 时启动 setTimeout() ,并且如果 setTimeout() 出现在之前.onload().onerror(),我知道服务器端卡住了,但据我所知,没有办法取消图像下载。设置 .src、删除对象、从 DOM 中删除 - 都不会取消。

编写代理来监控图像下载。我用 PHP 编写了一个原始代码,并修改了客户端代码以将其与图像一起使用,例如我使用的是 local/myproxy.php?img=example.net/pics/image3.png,而不是 example.net/pics/image3.png。代理

  • 记录 img 下载开始
  • 从服务器获取图像并提供
  • 然后记录img下载结束

在检查日志时,我使用了“ops!”短语经常。缓慢的图像“下载结束”日志消息在请求后很长时间内就会出现,并且肯定会出现其他奇怪的行为。

我可以推荐一个建议:控制图像下载的安排。正如 New iPad 告诉我的那样,最佳实践是将待处理的图像下载限制为 1 个。我不喜欢它,大多数桌面浏览器可以在多个线程上下载图像,我已经从同一域一次读取了 2 个图像, 4..8 同一页面的图像。

祝你好运。

关于javascript - 图像未加载,但未触发 onerror 或 onabort,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24035622/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com