Sachin Mittal wrote: > Hi, > I read that posting. > I have a doubt though, how would having a separate extension class would > solve the purpose of faster loading of static content. > Over the time I can add lot of css and js files to be loaded by these > extension classes thus brining back to square 1. > Alternately in current javascript.vm and stylesheets.vm I can have a > conditional load by calling few needed files only based on xwiki action, > thus making the page load faster. > > The problem is that the css and js code is very fragmented which makes it > difficult to collect place the static content in say web server. > Next many time css and js code needs to be parsed by velocity context to > evaluate certain variables which in most case refer to the image url. We > cannot put these dynamic files into web container and I believe loading such > files (static but dynamic) also increases the page load time. > Thus collecting all the js, css and images files and placing them into three > separate pre determined directories would avoid use of velocity code inside > the static content. > This then can be moved to web server thus achieving the desired result. > > Also when the files are same type are grouped together, it is lot easy to > manage and make further improvements on it.
This is true for a static XWiki installation, when you know what features you have in the site. This is the old way of doing things, and it worked almost fine with the previous XWiki-one-big-product-0.9. Now, we're turning XWiki into a platform with lots of modules on it. Still, we are far from there, since now we managed to separate the products from the platform pretty well, but we're just starting to separate applications from the products/platform. And this step is hard and slow because the platform is not extensible enough. Sure, it is easy to write applications that just require some wiki documents, but it becomes almost impossible when they require some javascript, some CSS and modifying some parts of the interface. The future XWiki will be more like Gecko/Firefox, a strong platform with very few features, but many extension points, on which you can put lots of apps and extensions and get a powerful product like XWiki Workspaces. And with a few click on the Administration interface, you can turn it into Watch. Or into XWits. Or into Spawn. Or into all of them together. Without restarting the server, downloading and importing xars, changing configuration files, installing plugins and other hard work. It will be easier than installing a Firefox addon. Firefox is so popular and because they decided to go the XUL+overlay way, without limiting what you can do with the browser. There are hundreds (thousands?) of extensions for Firefox, especially because it is simple and unrestrictive to write "the extensions of your dreams". Can we say that about XWiki right now? No. But I'd like to be able to say that. And for that we need to balance the performace/features ratio. If you want the most performant site, just write plain HTML and put it in a HTTPD + Squid cluster. Want to be as extensible as Facebook or iGoogle? Well, you have to give up some of the performance. And the simple decisions that you would like to put in javascript.vm are maybe simple for the moment, when we have less than 20 js files for which we know where and when are used, but they are increasing. However, once you decided how your site looks like, we could have a "Statify" tool that exports all the cacheable js/css content into some static resources. > Thanks > Sachin > > > > Sergiu Dumitriu-2 wrote: >> You should read http://dev.xwiki.org/xwiki/bin/view/Design/SkinExtensions >> >> -- Sergiu Dumitriu http://purl.org/net/sergiu/ _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

