you're right with the encapsulation, but i feel that resource versioning (and aggressive client side caching) could be a nice addition to wicket. but maybe sombody can think of another way to reduce (merge) resources without breaking encapsulation ...
btw, resource versioning also works with wicket-ajax.js and wicket-event.js: protected void init() { final String version = getFrameworkSettings().getVersion(); final String suffix = ("n/a".equals(version) ? "" : "-" + version) + ".js"; getSharedResources().add(WicketAjaxReference.INSTANCE.getName(), getResourceReference(WicketAjaxReference.class, "wicket-ajax.js").getResource()); mountSharedResourceWithCaching("/scripts/wicket-ajax" + suffix, WicketAjaxReference.INSTANCE.getSharedResourceKey()); getSharedResources().add(WicketEventReference.INSTANCE.getName(), getResourceReference(WicketEventReference.class, "wicket-event.js").getResource()); mountSharedResourceWithCaching("/scripts/wicket-event" + suffix, WicketEventReference.INSTANCE.getSharedResourceKey()); } // it's getting dirty ... protected void mountSharedResourceWithCaching(final String path, final String resourceKey) { mount(new SharedResourceRequestTargetUrlCodingStrategy(path, resourceKey) { public IRequestTarget decode(final RequestParameters requestParameters) { final SharedResourceRequestTarget t = (SharedResourceRequestTarget) super.decode(requestParameters); if (t != null) { // wrap target return new IRequestTarget() { public void detach(final RequestCycle requestCycle) {t.detach(requestCycle);} public void respond(final RequestCycle requestCycle) { t.respond(requestCycle); final WebResponse response = (WebResponse) requestCycle.getResponse(); response.setDateHeader("Expires", System.currentTimeMillis() + CACHE_DURATION * 1000L); response.setHeader("Cache-Control", "max-age=" + CACHE_DURATION); } }; } else { return null; } } }); } regards igor.vaynberg wrote: > > sfussenegger now has access to wicketstuff... > > i dont know which parts should go into wicket itself, i can tell you > that the part where you merge the files by listing them out upfront is > probably not going to make it in because it breaks encapsulation... > > -igor > > On Thu, Aug 28, 2008 at 2:59 AM, Stefan Fußenegger > <[EMAIL PROTECTED]> wrote: >> >> I just finished the 4th and last entry of my series "Wicket Interface >> Speed-Up" on my blog. To give a short summary: I investigated one of my >> apps >> with YSlow and started optimizing it's interface rendering speed [1]. >> Especially Wicket's way of handling resources, i.e. JS and CSS files, >> causes >> interfaces to load rather slowly. In my articles, I explain how to modify >> the cache interval [2], how to mount resources with a version (e.g. >> /css/all-1234.css) in order to use aggressive client-side caching (e.g. >> resources expire after a year) [3]. Finally, I show how to merge >> resources >> at application startup (using a class classed MergedResourceStream) to >> reduce the number of resources a client has to download [4], including >> code). I was able to increase interface loading times considerably, so >> it's >> surely worth a look. >> >> I feel that it would also be worth to discuss, whether this work could be >> part of upcoming Wicket versions. For the time being I'd like to make the >> code attached to [4] a wicketstuff project - sfussenegger needs commit >> access ;) - and wait for your feedback. >> >> The links: >> [1] >> http://talk-on-tech.blogspot.com/2008/08/wicket-interface-speed-up.html >> Wicket Interface Speed-Up >> [2] >> http://talk-on-tech.blogspot.com/2008/08/wicket-interface-speed-up-modifying.html >> Wicket Interface Speed-Up: Modifying Expires and Cache-Control Headers >> [3] >> http://talk-on-tech.blogspot.com/2008/08/wicket-interface-speed-up-caching.html >> Wicket Interface Speed-Up: Caching Resources Forever >> [4] >> http://talk-on-tech.blogspot.com/2008/08/wicket-interface-speed-up-merging.html >> Wicket Interface Speed-Up: Merging Resources for Fewer HTTP Requests >> >> ----- >> ------- >> Stefan Fußenegger >> http://talk-on-tech.blogspot.com // looking for a nicer domain ;) >> -- >> View this message in context: >> http://www.nabble.com/Discussion-on-%22Wicket-Interface-Speed-Up%22-tp19197540p19197540.html >> Sent from the Wicket - User mailing list archive at Nabble.com. >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [EMAIL PROTECTED] >> For additional commands, e-mail: [EMAIL PROTECTED] >> >> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > > ----- ------- Stefan Fußenegger http://talk-on-tech.blogspot.com // looking for a nicer domain ;) -- View this message in context: http://www.nabble.com/Discussion-on-%22Wicket-Interface-Speed-Up%22-tp19197540p19214462.html Sent from the Wicket - User mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]