Jesse --

Everything you say about Dojo makes sense. A one-time download of 78k is no big deal -- comparable to larger images.

Still, even if a script is cached, it still gets reparsed and rerun every time a page is rendered, which makes things a bit less snappy. With the kitchen sink Dojo, the lag is quite noticable! So for multi-page public internet apps, it's well worth being careful about dependencies.

For my purposes, the principles I'd wish for would be:

(1) Tacos should be reluctant to rely on complex modules for simple functionality (e.g. including all of alg to save three lines of _javascript_ would be a waste). Using the Ajax features without the effects should require only a very few modules.

(2) Tacos code should require modules only when they're actually about to be used. For example, if I don't use any effects, I shouldn't need the effects module -- the dojo.require should be inside the if(effects) block.

(3) The Tacos distribution should include a minimal dojo.js, which supports the basic Ajax behaviors without the bells & whistles.

I think all of my wishes can harmonize with what Jesse is saying. It basically boils down to keeping the "just the Ajax" path as lightweight as possible. That bit of extra work greatly increases the applicability of Tacos.

Cheers,

Paul

P.S. I tried XTile on Cosmin's suggestion, but it's not right for what I'm doing. The Tacos "DOM swapout" abstraction is a better fit. So ... It would be a shame if Tacos became an big-enterprise-app-only library, because it has value for public internet apps as well!


On Dec 17, 2005, at 1:44 PM, Jesse Kuhnert wrote:

I don't see any bugs and everything appears to be mostly working. The one IE error msg visible in the debug console I have no idea what to do about, but as it doesn't seem to be doing anything harmful on my end (I could be wrong) I'm going to choose to ignore it. If it is still making popup error messages for anyone please let me know, as that would be unacceptable to release.

I've included your suggestions as well Paul. The main dojo.js file is now only about 78k. I do have some thoughts on this that I'd like to share though:

-) If dojo doesn't work for someone's needs, it's probably not going to happen. I should be more clear in saying that my overall goal is for tacos to contain ~less~ _javascript_, not more. That doesn't mean I'm not open to suggestions, just that with my limited time and knowledge I don't want/trust writing _javascript_ code for tacos when it's already provided somewhere else.

-) dojo.js download size. This one is a little trickier. The file size may be large, but IE and FF both are perfectly capable of caching it. The only thing that isn't cached are js includes calls made in FF via xmlhttp, which is how the dojo include system works. This may be fixed in some unforseen future release, but I don't know when and don't really keep track.

-) The biggest reason for me not wanting to force a version of dojo on people is exactly for situations like yours. It seems to be such a personal thing, choosing which libraries of dojo you want to use and not use, I'm very happy to let other people control it instead of myself. Your suggestion about tacos including at least a non-kitchen sink version of dojo by default was a very good idea though, and since you did all the hard work of writing the profile for me it was easy to do :)

-) I personally am less concerned about the js file size, as I plan on using tacos/dojo in large scale enterprise applications where it's not as much of an inconvenience for users to do this initial download. This may not fit the more general use scenerio. I appreciate and understand the delima, but with limited time I have to focus on things that I'm directly interested in, while also pleasing other scenerios where I can. I'm not saying you're wrong, just that the door for discussion is open and I'm always a fan of a good idea + implementation, or at least a pointer in the right direction. ;)

This has taken a lot of work and I think will finally give everyone a little breathing room to do lots more, like start our new branch for tapestry 4.1 development :)

I'm going to attempt to update as much documentation and other tiny things as I can throughout the weekend. I'll hold off on an actual release until Sunday probably to give everyone time to find any last minute bugs/details that need fixing.

jesse

_________________________________________________________________
Piano music podcast: http://inthehands.com
Other interesting stuff: http://innig.net


Reply via email to