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]