Talk:MediaWiki Performance Optimization by Reducing Traffic and Server-side Calculation

From Meta, a Wikimedia project coordination wiki

Some development ideas[edit]

Talking with MediaWiki developers and reading MediaWiki-l mailing list had revealed some narrow places of the optimization approach. The most important issues are:

Preserving existing caching scheme and CSS compatibility[edit]

This issue is a result of the IRC conversation with JeLuF on #wikimedia. Wikimedia is using several layers of caching. So the approach must not destroy these caches. Taking into account that some browsers send Pragma:nocache for XMLHTTPRequests it would be better to use iframes for server requests. But iframes can't be used to display data due to browser differences (Monobook works fine on PDA, screen readers and it is print-friendly) so it would be better not to change monobook structure if it's not essential. Possible decision is hidden iframes for server requests and divs for data representation. So all we have to do is to add hidden iframes and scripts that will transform the server's answer to the divs innerHTML property.

XML representation of wiki markup and Client API[edit]

In order to implement multi-stage page download I have to use some backend. The most suitable candidates are XML representation of wiki markup by User:Duesentrieb and Client API by User:Yurik. Duesentrieb's XML Wiki-representation is pretty good for the client-side XHTML transformations of articles. And Yuric's Query.php is fine for obtaining MediaWiki domain objects.

Client-side Wiki-parser vs. XSL Transformations[edit]

Reading MediaWiki-l mailing list and wikiwyg.org had brought some new ideas about client-side data transformations.

First of all, it should not be separate JS-parser, due to following constraints:

  • "Having two parallel parsers is also a bad practice, introducing extra work in maintaining them both and keeping them in sync" (C) Brion Vibber

So, I believe that it would be better to use just some kind of XSL Transformation (for example AjaXSLT) to archive optimization goal.

Project name[edit]

Should the project name be changed to the more specific theme? There're plenty ways to do performance optimizion, not only AJAX or client parsing approach. --Ans 06:36, 8 May 2008 (UTC)[reply]