Hi,

On Sun, Nov 25, 2012 at 11:54 AM, Oscar Besga Arcauz <obe...@isdefe.es>wrote:

> Thank you !
>
> Some of these improvements are already implemented on my site.
>
> I've been looking forward to implement wicket-specific optimizations
> (althought I'm discovering that wicket alone it's default optimized on
> deployment mode )
>
> And as you already said, perfomance is an art where no silver bullets are
> common; but a search for balance and tradeoffs.
>
> For example, I've said that using (1) code will . Well, for one side it
> will dinamically minify the resulting html code downloaded by browser. But
> these settings will make page processing slower.
>

These particular settings are actually not a problem.
They are used during the reading of the markup templates. Once read the
templates are cached and used for the lifetime of the application.


>
> So it's up to you to choose the rigth approach.
>
> (1)
>             getMarkupSettings().setStripComments(true);
>             getMarkupSettings().setCompressWhitespace(true);
>             getMarkupSettings().setStripWicketTags(true);
>
>
>     > > > Oscar Besga Arcauz  < < <
>
> -----"Serban.Balamaci" <thespamtr...@gmail.com> escribió: -----
> Para: users@wicket.apache.org
> De: "Serban.Balamaci" <thespamtr...@gmail.com>
> Fecha: 15/11/2012  22:45
> Asunto: Re: Deploy on production: optimization tip & tricks
>
> Hi Oscar,
> Probably nobody responded because this is not a simple topic but with many
> implications and turns. There are many optimizations that can be done not
> necessarily related to wicket.
> I'd recomend http://stevesouders.com/ blog, http://www.bookofspeed.com/ ,
> http://www.guypo.com/
>
> But ok I'll play along and add my 2 cents:
> 1. Setting Caching  headers on the web response is for certain something
> that you'd want to do. Set a long expire date for JS and CSS file like
> months even 1year. But you'd also want the users to receive the latest css
> and JS files you make with a new release. So it's good to mix up the
> resource name with some kind of version token(I use the app version nr in
> the css/js files name something like <link rel="stylesheet" type="text/css"
> href="https://portal.isdefe.es/2.14/css/site.css"; />).
>
> Also most important optimizations that give the user the impression of
> speed
> are related to loading the JS files. While JS files are being downloaded
> the
> PAGE RENDERING is STOPPED. So it's a good idea to put them at the page's
> bottom and using the css and html to render the page in an usable(nice
> looking) state and then, while the user is reading and figuring out the
> content, the JS "enhancements" like sliding menus etc are loading in the
> "background". Otherwise keeping the JS at the top results in the so called
> "WhitePageOfDeath" in which the user sees a blank page while the header JS
> files are being downloaded.
> You can achieve the same thing as putting the JS at the page bottom but
> while keeping the JS files at the head with the "defer" attribute easily
> like . That means the rendering will not be blocked but the JS will execute
> on DomReady event.
>
> 2. Minification and merging JS files into one:
> A. Most today's browsers are limited to making at most 6 parallel requests
> to a certain domain. So you don't want to have more js files merged into a
> single one so you don't wait for another wave of free connections. There is
> also the RoundTripTime overhead associated with making a new call to the
> server.
> B. The the bigger a text file is, the better it's compression ratio will
> be.
> So you'd get some benefit from merging all the js files into one and the
> gzip compression will be greater and also the minification gain. I
> recommend
> the *wro4j* project as it has lots of minification plugins.
> Unfortunately Wicket's component nature where every component can
> contribute
> it's own separate JS file makes it harder to have a single big minified JS
> file for all the page.
>
>
> 3. Using CDNs have the benefit of lower latency and also introducing
> another
> domain and thus increasing those 6 max nr of connections. Using some famous
> CDN like you did for JQuery also increases the probability of user already
> having Jquery in the cache from another site that he visited before(that's
> why I'm a fan of not also including the JQuery library in a minified
> package
> of all your site's JS files).
>
> Using asynchronous loading for 3rd party scripts like g+, facebook, ga are
> mandatory also these days.
>
> 4. Caching before the web server layer - using a caching proxy like Varnish
> or Apache/Nginx with a caching module to save maybe DB generated image
> resources maybe can be a good idea also.
> The topic is far far from being exhausted so I think that's the reason why
> nobody is playing along with responding.
>
> Personally I'm curios if an enhancement of providing "Transfer-Encoding:
> chunked" and keeping the JS resources in the head with the "defer"
> attribute(so the browser quickly receives the header and can begin the
> download of JS files) while a slow DB prevents us from returning the full
> html. But I'm afraid it might be a mess with not really huge gains in
> performance and wicket by it's component nature means we don't know the
> required js resources in the page's head until all the components have been
> added to the page and got a chance to contribute there needed resources.
>
> I'm also curious what the future holds in terms of the SPDY protocol since
> optimizing for it and might go against today's best practicies of splitting
> resources across many domains.
>
>
>
> --
> View this message in context:
> http://apache-wicket.1842946.n4.nabble.com/Deploy-on-production-optimization-tip-tricks-tp4653774p4653928.html
> Sent from the Users forum mailing list archive at Nabble.com.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> For additional commands, e-mail: users-h...@wicket.apache.org
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> For additional commands, e-mail: users-h...@wicket.apache.org
>
>


-- 
Martin Grigorov
jWeekend
Training, Consulting, Development
http://jWeekend.com <http://jweekend.com/>

Reply via email to