Hi all, I'm currently think about who to speed up qooxdoo load time. One of the main problems for most (I think ;) ) is the big JS file itself, not the runtime. Beside the option that you could use gzip I see other ways to speed up the loading.
The most "annoying" part of a build process for me is that qooxdoo builds everything again and joins it again. But why exactly produce qooxdoo ONE big file, instead of 2? I mean, why is qooxdoo and the project linked together? From my point of view it's not very usefull. When a Project is changed (and most project will do this more often then they change qooxdoo), the qooxdoo part is reloaden by the client as well. I understand that loading 100 files is slower then 1 file, but loading two files instead of one file shouldn't be a great difference. Also other projects like ExtJS load up to 5 files for itself, and they still loading faster then qooxdoo (the the online demos). My idea would be the following: Source qooxdoo.js : This file contains all classes of qooxdoo and is generated only one time, or when user requested [project].js : This file includes the qooxdoo.js and the single classes of the user -> I think that would speed up the load time of the source version, now he loads hunderts of files which is often slowered (when I tested it) then loading all classes. Build: qooxdoo_[version].js : Like above, but if the uses selected it only with the needed classes. Regenerated only if needed [project]_[version].js : Combined and optimized Project files loader.js : This file is included the files above. The version number is to show the browser definitly when a js file is changed. -> If php/perl... is involed then the loader.js would load the script adove through the php/perl... scripts . -> The loader.js could be skipped if the index.html is autogenerated. There is one big advantage of the build version splittet these files: The Browser can now check if the files are changed separatly, and load only the changed one. If qooxdoo is not changed -> don't reload it. For most projects this would be a speed up on change by at least 50%, in smaler projects much more. Version number: The idea behind them is that you could set the client side cache to nearly unlimited, so the browser doesn't looks often (never? <- is that right?) if a file is changed and uses the cached one, until he sees the request for a file he doesn't now by name. Also it would be nice if qooxdoo could generate the gzip Version in the build process as well, and also produce php/perl/ruby/python loading scripts to choose the right JS Version and set the browser caching as well. I could write some PHP Scripts that helps here. I know that this is nothing for qooxdoo 7.x, but for 8.x it seems "sexy" for me. What did the rest thinks about that? Greetings, Leander ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ qooxdoo-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
