[dojo-contributors] Re: dojo-lite branch, and general issues

Eugene Lazutkin eugene at lazutkin.com
Sun Dec 31 12:44:38 EST 2006


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

James Burke wrote:
> 
> While I think it is good to try to prune out extra stuff and tighten
> down the code, I don't think you will be able to make enough progress
> to change people's minds about Dojo bloat. To me, the bigger issue is
> the user freak-out of having to download a zip file, then watching all
> these files in src/ be unzipped, and having the try to work out a sane
> source control approach to all those files.
> 
> Understanding that there are all these directories with Dojo and not
> just a dojo.js was an initial stumbling block for me too.

True. People asking why XXX has 6 files and we have a hundred. Knowledge
of loading system comes much later, while the initial impression matters.

> That's why I prefer to get the xdomain build on a CDN to avoid those
> issues. The other benefit of getting dojo.js on the CDN is that we can
> reliably gzip the dojo.js file, and I think it is easier then to talk
> about the gzip size of dojo.js: "for the ajax build on the CDN,
> dojo.js is only 26KB on the wire".

This is one reason while xdomain builds with backing of reputable CDN is
important.

> As a quick test, I just removed the dojo.lfx.* entry in
> ajax.profile.js, and removed the dojo.require("dojo.undo.browser")
> from src/io/BrowserIO.js. After doing those two things, the ajax build
> size for dojo.js is 89KB, gzipped is 25KB. If I include
> dojo.undo.browser, dojo.js is 94KB, gzipped is 26KB.
> 
> I'm not sure why dojo.lfx.* is in the ajax profile in the first place.
> Seems like an easy win to remove it.
> 
> As for dojo.undo.browser, it seems that it is an optional feature that
> is not needed by everyone who needs XHR IO. I think we can probably
> replace the dojo.require statement with a dojo.requireIf() and only
> download dojo.undo.browser if the user specifies
> djConfig.preventBackButtonFix to false. The downside with excluding
> dojo.undo.browser is it will not work in xdomain builds unless it is
> part of dojo.js (it needs to do a document.write thing to really work,
> and that can only happen in xdomain builds if it is in dojo.js).
> 
> The ajax build, the following files are needed:
> [list-profile-deps] ../src/string/common.js,
> [list-profile-deps] ../src/string.js,
> [list-profile-deps] ../src/string/extras.js,
> [list-profile-deps] ../src/lang/common.js,
> [list-profile-deps] ../src/lang/extras.js,
> [list-profile-deps] ../src/lang/array.js,
> [list-profile-deps] ../src/lang/func.js,
> 
> Instead of requiring all of those files in dojo.string and dojo.lang,
> optimize dojo.string.common and dojo.lang.common to be the functions
> that are only needed for the ajax build. Move everything else to other
> modules.
> 
> Also, dojo.io.cookie is included. Maybe that isn't strictly necessary
> for simple ajax builds?

I like your plan for the Ajax build. Probably we should go over other
builds and optimize them as well.

Thanks,

Eugene

> 
> James

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFFl/cGY214tZwSfCsRAi30AJ4+qEFiinZvoLxNjkUZUiQI11pWKgCgwgms
li30Dl5UYJEEf72bXnICFxQ=
=hasY
-----END PGP SIGNATURE-----



More information about the dojo-contributors mailing list