On Mon, Sep 03, 2007 at 10:23:41AM +0200, Jakub Narebski wrote: > On Mon, 3 September 2007, Petr "Pasky" Baudis wrote: > > > To hijack this post a bit, another patch in the queue (the incremental > > blame thingie) introduces blame.js. Do you think that we should keep the > > .js files separate, or instead have one big gitweb.js with everything? > > I'm inclined to the second possibility in order to reduce the number of > > requests, but it comes at a price of slightly worse maintainability. Why is the maintainablility reduced? gitweb.perl is also a collection of different function, which are kept in one file. Where is the difference to a javascript file? Keeping everything into one file will make it more likely, that the code is not developed totally different (in the terms of code style, variable/function names, ...). In the moment, there is the problem, which patch should introduce the js file. We need a common base patch, which introduces an empty gitweb.js. Keeping the two functions separate has problems. Every patch need to hook into the onload event. To avoid merge conflicts, my current patch saves the old handler and overwrite it with its on version, which calls back into the saved handler. If we would have on js file, we can add in the base patch an empty JavaScript function for this. Then Hooking in the onload event would mean, to only add some new lines to the function. The resulting merge conflicts are easier to resolve (as they affect independet lines) compared to the current '<body onload="hook1(); hook2();">' > On the other hand if we have blame.js separate, we could load it > (require it) only for the 'blame' view, it means only when needed. > > gitweb.js would contain JavaScript code used by all (or almost all) > views, then... > > I don't think gitweb.js would be as large as gitweb.perl, if we are > talking about maintability ;-) The size of gitweb.js should not matter. On a modern browser, the first request will fetch the whole Javascript file. For subseqent request, the webserver returns "not modified". Having two javascript file means two checks. mfg Martin Kögler - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html