struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "James Holmes" <ja...@jamesholmes.com>
Subject RE: [s2] Struts head tag KILLS (> 10s) page load time
Date Tue, 25 Sep 2007 01:50:36 GMT
+1

-----Original Message-----
From: Don Brown [mailto:donald.brown@gmail.com] 
Sent: Monday, September 24, 2007 9:39 PM
To: Struts Users Mailing List
Subject: Re: [s2] Struts head tag KILLS (> 10s) page load time

Hmm...more info can be found here: http://dojo.jot.com/FAQ#Performance

I wonder if we should require the cache=true flag when not in devmode,
or at least throw all sorts of warnings in the logs.  We should do
everything possible to help the user avoid huge performance problems,
and I'd certainly classify this as one of them.

Don

On 9/24/07, Musachy Barroso <musachy@gmail.com> wrote:
> It is a dojo/browser thing. All we can do is done already, if you set
> cache="true" Struts 2 will use a custom build where only one file
> (which will be cached) will be used.
>
> musachy
>
> On 9/24/07, Don Brown <donald.brown@gmail.com> wrote:
> > Oh damn, why is that?  Cache is critical here.
> >
> > Don
> >
> > On 9/24/07, Musachy Barroso <musachy@gmail.com> wrote:
> > > When a file is loaded using dojo.require, it is not cached by the
browser.
> > >
> > > musachy
> > >
> > > On 9/23/07, Jason Wyatt <jwyatt@itree.com.au> wrote:
> > > > Hi Martin,
> > > >
> > > > Yes, that's right.
> > > >
> > > > The dojo "requires" seemed unexpectedly slow during our tests. I was
using
> > > > Firefox's Firebug to check page load times. From memory, it looked
like the
> > > > dojo includes were being requested sequentially and seemed to give
> > > > substantial page loading overhead (>2s) even if the dojo .js files
were
> > > > cached.
> > > >
> > > > I never fully understood why there was a large overhead although the
dojo
> > > > files were supposedly cached. It might have been a quirk with
firebug and
> > > > dojo "requires", or maybe the "requires" routine itself is slow,
when called
> > > > 30+ times.
> > > >
> > > > About 5 dojo files were consistently returning "not found" as well,
which
> > > > may not have helped the load times.
> > > >
> > > > Removing as much dojo stuff as I could, and upgrading from Struts
2.0.8 to
> > > > 2.0.9 has solved our page load time issues.
> > > >
> > > > Regards
> > > > Jason
> > > >
> > > >
> > > > -----Original Message-----
> > > > From: Martin Gainty [mailto:mgainty@hotmail.com]
> > > > Sent: Friday, 21 September 2007 11:41 AM
> > > > To: Struts Users Mailing List
> > > > Subject: Re: [s2] Struts head tag KILLS (> 10s) page load time
> > > >
> > > > Hi Jason-
> > > >
> > > > so by attentuating dojo includes you decreased initial load time for
dojo
> > > > with the beneficial side effect of faster response to the browser?
> > > >
> > > > Thanks/
> > > > Martin--
> > > > ----- Original Message -----
> > > > From: "Jason Wyatt" <jwyatt@itree.com.au>
> > > > To: "'Struts Users Mailing List'" <user@struts.apache.org>
> > > > Sent: Thursday, September 20, 2007 9:09 PM
> > > > Subject: RE: [s2] Struts head tag KILLS (> 10s) page load time
> > > >
> > > >
> > > > >I had the same issue... We use the ajax tabbed panel but no other
dojo
> > > > > widgets, but the <s:head theme="ajax"> tag had dojo "requiring"
all of the
> > > > > dojo widget library.
> > > > >
> > > > > This was causing our page to fire off 70+ requests when loading.
As our
> > > > > app
> > > > > needs to be accessed up to a thousand km away, tests showed
initial load
> > > > > times of over 10s because of latency.
> > > > >
> > > > > I modified web\template\ajax\head.ftl to include a custom
> > > > > web\hack\ajax\dojoRequire.js that had the minimum dojo includes
for the
> > > > > tabbed panels. This managed to get the number of requests down to
around
> > > > > 30,
> > > > > mostly our own images and scripts, which gave acceptable load
times.
> > > > >
> > > > > Eg.
> > > > >
> > > > > web\template\ajax\head.ftl:
> > > > >
> > > > > <#include
"/${parameters.templateDir}/${themeProperties.parent}/head.ftl"
> > > > > />
> > > > > <script type="text/javascript"
> > > > >        src="<@s.url value='/hack/ajax/dojoRequire.js'
includeParams='none'
> > > > > encode='false'  />"></script>
> > > > > <script type="text/javascript"
> > > > >        src="<@s.url value='/struts/CommonFunctions.js'
> > > > > includeParams='none'
> > > > > encode='false'/>"></script>
> > > > >
> > > > >
> > > > > web\hack\ajax\dojoRequire.js:
> > > > >
> > > > > dojo.require("dojo.io.BrowserIO");
> > > > > dojo.require("dojo.event.topic");
> > > > >
> > > > > dojo.hostenv.setModulePrefix('struts', 'struts');
> > > > > //dojo.require('dojo.widget.*');
> > > > > dojo.widget.manager.registerWidgetPackage('struts.widget');
> > > > >
> > > > > dojo.require("struts.widget.Bind");
> > > > > dojo.require("struts.widget.BindDiv");
> > > > > //dojo.require("struts.widget.BindAnchor");
> > > > > //dojo.require("struts.widget.ComboBox");
> > > > > //dojo.require("struts.widget.StrutsTimePicker")
> > > > > //dojo.require("dojo.widget.Editor2");
> > > > > //dojo.hostenv.writeIncludes(); // not needed, but allows the
Venkman
> > > > > debugger to work with the includes
> > > > >
> > > > >
> > > > > Hope this helps, regards
> > > > > Jason
> > > > >
> > > > > -----
> > > > > Falun Dafa  Truth - Compassion - Forbearance
> > > > >
> > > > > A mind & body practice under persecution in China
> > > > >
> > > > > http://www.faluninfo.net
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > -----Original Message-----
> > > > > From: Frank W. Zammetti [mailto:fzlists@omnytex.com]
> > > > > Sent: Friday, 21 September 2007 8:09 AM
> > > > > To: Struts Users Mailing List
> > > > > Subject: Re: [s2] Struts head tag KILLS (> 10s) page load time
> > > > >
> > > > > If Dojo is being used for AJAX in this case, that's my guess.  I
know from
> > > > > experience that Dojo, can issue a TON of requests even if you
think your
> > > > > only loading a small portion of it.  Assuming this guess is
correct,
> > > > > Musachy, does S2 use a custom build of Dojo?  If not, that might
be worth
> > > > > considering.
> > > > >
> > > > > Frank
> > > > >
> > > > > --
> > > > > Frank W. Zammetti
> > > > > Founder and Chief Software Architect
> > > > > Omnytex Technologies
> > > > > http://www.omnytex.com
> > > > > AIM/Yahoo: fzammetti
> > > > > MSN: fzammetti@hotmail.com
> > > > > Author of "Practical Ajax Projects With Java Technology"
> > > > >  (2006, Apress, ISBN 1-59059-695-1)
> > > > > and "JavaScript, DOM Scripting and Ajax Projects"
> > > > >  (2007, Apress, ISBN 1-59059-816-4)
> > > > > Java Web Parts - http://javawebparts.sourceforge.net
> > > > >  Supplying the wheel, so you don't have to reinvent it!
> > > > >
> > > > > chengas123 wrote:
> > > > >> Hi,
> > > > >> I am working on a Struts 2 page and page load times are way too
high.
> > > > >> I tracked it down to the Struts head tag, which I have as
follows:
> > > > >> <s:head theme="ajax" /> Without the tag, my page issues
3
requests and
> > > > >> takes 453ms to load.  With the tag, the page issues 54 requests
taking
> > > > >> 12.24s to load.
> > > > >> Is there something I am doing wrong here?
> > > > >>
> > > > >> Thanks,
> > > > >> Ben
> > > > >
> > > > >
> > > > >
---------------------------------------------------------------------
> > > > > To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> > > > > For additional commands, e-mail: user-help@struts.apache.org
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
---------------------------------------------------------------------
> > > > > To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> > > > > For additional commands, e-mail: user-help@struts.apache.org
> > > > >
> > > > >
> > > >
> > > >
> > > >
---------------------------------------------------------------------
> > > > To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> > > > For additional commands, e-mail: user-help@struts.apache.org
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
---------------------------------------------------------------------
> > > > To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> > > > For additional commands, e-mail: user-help@struts.apache.org
> > > >
> > > >
> > >
> > >
> > > --
> > > "Hey you! Would you help me to carry the stone?" Pink Floyd
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> > > For additional commands, e-mail: user-help@struts.apache.org
> > >
> > >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> > For additional commands, e-mail: user-help@struts.apache.org
> >
> >
>
>
> --
> "Hey you! Would you help me to carry the stone?" Pink Floyd
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> For additional commands, e-mail: user-help@struts.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org


Mime
View raw message