Oh, I didn't mention this before, but the recent changes also include Underscore in the core stack; I'm seeing on a client project that the initial page load downloads a 60K gzipped payload that expands into 208KB of JavaScript: RequireJS, Underscore, jQuery, and a selection of the t5/core modules.
This is with tapestry-webresources in play, minimizing the final JS payload (before it is gzipped). Of course, the exact numbers will vary depending on your infrastructure provider ("prototype" vs. "jquery"), and other factors. There's a lot of room for tuning, both in the framework, and in your application. For example, I may add "t5/core/forms" and a few related ones to the core stack by default. You may even contributes nulls to the @Core JavaScriptStack to remove modules from the stack, in which case they will be loaded dynamically by RequireJS. This is one of the areas where there's contention between Tapestry's roots as a "traditional" (e.g, HTTP GET and POST) framework, and the new emphasis on Ajax, and single-page functionality. The goal is to figure out just the right stuff to put into aggregated stack to balance speed of that critical first page hit, vs. navigation to other parts of the application. It's a bit easier for a single-page app (the kind of thing you'd build using AngularJS) ... *everything* has to come down in that initial hit. I'm kind of curious how the other frameworks approach these issues (or ignore them). Perhaps people with experience in Wicket or Play could weigh in. I suspect all of these critical issues are left as an exercise for the individual developer. On Tue, Nov 26, 2013 at 2:17 PM, Emmanuel Sowah <eso...@gmail.com> wrote: > And while here, Mr. Ship, I want to congratulate you on your recent moves > on Wicket. Except that I'm unhappy you're not being honest about it to your > cult members. I hope you one day develop some courage and face up to your > cult members about your using of Wicket on your clients projects. > > Cheers, > Emmanuel > > PS: Are shaving machines so expensive at where you live? You need to do > something about that beard. The last time I saw you live, you were looking > very much like the deceased Iraqi dictator Saddam Hoessein. > > > On Tue, Nov 26, 2013 at 6:14 PM, Howard Lewis Ship <hls...@gmail.com> > wrote: > > > Yes, there was a bit of a race condition going on ... RequireJS was > > attempting to resolve modules before it was configured, and this was made > > more noticable lately with the work to move RequireJS, Underscore, > > Prototype, jQuery, etc., into the core stack (which makes aggregation > much > > more efficient). > > > > > > On Tue, Nov 26, 2013 at 6:23 AM, Peter Hvass <p.hv...@albourne.com> > wrote: > > > > > Also seeing a number of other strange client-side issues just go away. > :) > > > > > > > > > Thanks again for all the hard work! > > > > > > > > > ----- Original Message ----- > > > > > > From: "George Christman" <gchrist...@cardaddy.com> > > > To: "Tapestry users" <users@tapestry.apache.org> > > > Sent: Tuesday, November 26, 2013 3:52:42 PM > > > Subject: Re: Apache Tapestry 5.4-alpha-28 preview release > > > > > > Thanks Howard, it looks like this release fixed this issue. > > > > > > > > > > > > http://apache-tapestry-mailing-list-archives.1045711.n5.nabble.com/5-4-alpha-24-JS-bug-td5724691.html#a5724745 > > > > > > > > > On Mon, Nov 25, 2013 at 8:46 PM, Howard Lewis Ship <hls...@gmail.com> > > > wrote: > > > > > > > Getting very close to a beta ... > > > > > > > > This release fixes a latent bug in the jQuery event support that > would > > > > manifest as forms with input validations getting submitted via a > > > > LinkSubmit, > > > > and perhaps other ways. > > > > > > > > I've hopefully fixed a bug that affects Windows/Eclipse users, where > > the > > > > application will not deploy correctly after editing a CoffeeScript > > > source. > > > > > > > > The way RequireJS is configured and loaded has been refactored; the > new > > > > approach works correctly when jQuery is the infrastructure provider, > > and > > > > JavaScript Aggregation is enabled. In addition, the core JavaScript > > stack > > > > now includes RequireJS, Prototype and/or jQuery, and the majority of > > the > > > > frequently used t5/core modules. That's really terrific for > production, > > > as > > > > a single cachable request will get nearly all the JavaScript for a > site > > > > ... and don't forget you can make further contributions to the core > > > > JavaScriptStack to add your site-specific libraries and modules! > > > > > > > > Upgrading from prior alpha previews: > > > > > > > > The client-side ElementWrapper's attribute() method has been renamed > to > > > > attr(), to align better with jQuery. We may see just a little bit > more > > of > > > > that before the beta. Sorry for the pain. > > > > > > > > Tapestry preview releases are available via Maven, from the Apache > > > Staging > > > > repository: > > > > > > > > https://repository.apache.org/content/groups/staging > > > > > > > > -- > > > > Howard M. Lewis Ship > > > > > > > > Creator of Apache Tapestry > > > > > > > > The source for Tapestry training, mentoring and support. Contact me > to > > > > learn how I can get you up and productive in Tapestry fast! > > > > > > > > (971) 678-5210 > > > > http://howardlewisship.com > > > > > > > > > > > > > > > > -- > > > George Christman > > > www.CarDaddy.com > > > P.O. Box 735 > > > Johnstown, New York > > > > > > > > > > > > -- > > Howard M. Lewis Ship > > > > Creator of Apache Tapestry > > > > The source for Tapestry training, mentoring and support. Contact me to > > learn how I can get you up and productive in Tapestry fast! > > > > (971) 678-5210 > > http://howardlewisship.com > > > -- Howard M. Lewis Ship Creator of Apache Tapestry The source for Tapestry training, mentoring and support. Contact me to learn how I can get you up and productive in Tapestry fast! (971) 678-5210 http://howardlewisship.com