使用GWT,如何加载图像和访问图像属性和http状态代码

Using GWT, how to load an image and access image attributes & http status codes

本文关键字:图像 访问 属性 http 代码 状态 加载 GWT 何加载 使用      更新时间:2023-09-26

使用GWT,我正在从我无法控制的服务器加载图像。 目前,我使用 GWT new Image( url),然后使用 ImageHandlers 和 ErrorHandlers 来捕获发生的事情,并将图像放入我的缓冲区和 DOM 中。 然后,我使图像按顺序可见,以使该过程动画化。 但是现在我需要更多,我需要知道错误代码,例如服务器为图像返回的错误代码 304,我还需要获取标头响应属性"上次修改"。 对于 304,我知道我需要稍后重新提交请求,当服务器将创建一个我认为我可以管理的新版本(具有完全相同的 url),但它随后会有一个新的"上次修改时间",我需要知道日期时间。通过使用新的 Image(url),我让浏览器进行加载,但我不知道如何获取加载的详细信息。

Q1:有没有办法从图像中提取更多信息?GWT 图像似乎只是包装了一个 JS 对象。 我查看了Firefox控制台网络,但也没有看到太多细节。上次修改和错误代码在 DOM 树中获取(或不)时被遗忘。

如果Q1的答案是否定的,则信息消失或无法访问,..

Q2:我是否需要停止使用浏览器获取图像并使用 XmlHttpRequest 执行此操作,然后大概我可以访问响应代码和标头属性。标准操作程序不是问题。 但是,我如何从响应输出流到图像呢? 我必须对 Base64 进行编码还是有更好的方法? 图像帮助的其他非 url 构造函数之一,例如 Image(Element) 或 Image(ImageResource)。那么问题就变成了如何将响应流变成元素或图像资源?

注意:另一个问题"如何打印图像加载失败的错误消息?"是相关的,但没有得到答案。

获取错误代码并将响应作为流获取必须使用 HTTP 客户端完成(GWT 具有内置RequestBuilder)。您还可以尝试使用此处描述的方法使用本机 JS 获取错误代码。