I have opened a bug on this (
http://dev.vaadin.com/ticket/9988
) as it seems like a bug to me, but thought I might get some good feedback here.
In summary, I have a ComboBox that displays a list of organisations and an Embedded that displays the logo of the selected organisation if it has one. When a new organisation is selected, the Embedded is updated with the new logo.
This all works fine, however, sometimes there is a significant delay (20-30 seconds) between when an organisation is selected and when the updated logo is displayed. I’ve done the usual things to defeat browser caching such as setting the StreamResources cache time to 0, adding a timestamp to the URL file name, and ensuring that Embedded.markAsDirty() is called.
For any given logo, the update could be immediate or it could be delayed. So it would appear that the issue is not directly related to the specific image content.
If I monitor the TCP traffic, it appears that the server is always delivering the image immediately, it’s just that the browser sometimes takes a long while to display the image after it arrives. Mostly working with Firefox 16.1 but also saw the same issue with IE9.
Displaying an empty image in between two organisations with an image seems to result in the images displaying immediately every time but I need to do some more testing to validate this.
The delayed refresh occurs without any user interaction. i.e., something other than a mouse move or keyboard interaction eventually triggers the update. When the image is updated I see the following messages on the Vaadin debug log:
20:33:56:547 Embeddable onload
20:33:56:648 Starting layout phase
20:33:56:659 Measured 16 non connector elements
20:33:56:660 Layout init in 10 ms
20:33:56:666 Measured 3 elements in 4 ms
20:33:56:668 Fired resize listeners for 1 elements in 2 ms
20:33:56:669 Pass 1 completed in 7 ms
20:33:56:677 Did overflow fix for 1 elements in 7 ms
20:33:56:685 Measured 1 elements in 15 ms
20:33:56:686 Pass 2 completed in 16 ms
20:33:56:687 No more changes in pass 3
20:33:56:689 Invoke post layout listeners in 1 ms
20:33:56:689 Cleaned old measured sizes in 38ms
20:33:56:690 Total layout phase time: 40ms
Anyone seen this issue before?