Details
Description
When rendering a single page with multiple references to the same image resource (for instance a repeated icon in a table), each of these images gets a different antiCache query parameter. Thus the browser rendering this single page will perform a download for each occurrence of this image in the page, not using its cache even in the scope of this single page rendering.
I understand the need of preventing cache, but it may be a bit extreme to prevent caching in the scope of a single page rendering.
The reason for this extreme behavior is that Image's anticache feature is implemented as follows (Wicket 7.3):
protected final void addAntiCacheParameter(final ComponentTag tag) { String url = tag.getAttributes().getString("src"); url = url + (url.contains("?") ? "&" : "?"); url = url + "antiCache=" + System.currentTimeMillis(); tag.put("src", url); }
As each Image's rendering may be done at a different time (a millisecond later), the antiCache parameter may be different for each Image.
Replacing System.currentTimeMillis() by RequestCycle.get().getStartTime() should probably solve the problem... ?
If impossible, maybe we could just remove the final keyword on addAntiCacheParameter so that extending classes may override it?
Attachments
Issue Links
- links to