Sunday, 8 September 2013

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

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

Using GWT I am loading images from a server I do not control. Currently, I
use GWT new Image( url) and then use ImageHandlers and ErrorHandlers to
catch what happened and put the images in my buffer and the DOM. Then I
make the images visible sequently to animate the process. But now I need a
bit more, I need to know the error code, e.g.304 that the server returned
for the image and also I need to get at the header response attribute,
'Last-modified'. For 304, I know I need to resubmit the request later when
the server will have created a new version ( with exactly the same url )
which I think I can manage, but it will then have a new 'Last-modified'
and I need to know that DateTime. By using new Image(url), I am letting
the browser do the loading, but I don't know how to get at the details of
the load.
Q1:Is there a way to pull more info from an image? GWT Image just seeems
to wrap a JS object. I look in Firefox Console-Network, but don't see much
detail there either. Is Last-modified and error code forgotten by the time
it gets (or doesn't) in the DOM tree.
If the answer to Q1 is no the information is gone or inaccessible, ..
Q2: Do I need to stop using the browser to fetch images and do it with an
XmlHttpRequest and then presumably I have access to the response codes and
the header attributes. SOP is not an issue. But how then do I get from say
the Response OutputStream to an Image? Do I have to Base64 encode it or is
there a better way? Will one of the other non-url constructors for image
help, say Image(Element) or Image(ImageResource). Then the issue becomes
how to make a response stream into a Element or ImageResource?
Note: This other question 'How to print error message of why image failed
to load?' is related, but doesn't get to an answer.

No comments:

Post a Comment