ResourceLoader

ResourceLoader is a JavaScript/CSS delivery optimizing system for MediaWiki that is available in MediaWiki version 1.17 and later.

Extension Developers: Please integrate ResourceLoader support in your extensions. While extensions that do not support ResourceLoader should still function in MediaWiki 1.17, there may be some issues.

About ResourceLoader
On Wikimedia wikis, every page view includes hundreds of kilobytes of JavaScript. In many cases, some or all of this code goes unused due to browser support or because users do not make use of the features on the page. In these cases, bandwidth, and loading time spent on downloading, parsing and executing JavaScript code is wasted. This is especially true when users visit MediaWiki sites using older browsers like Internet Explorer 6, where almost all features are unsupported, and parsing and executing JavaScript is extremely slow.

ResourceLoader solves this problem by loading resources on demand and only for browsers that can run them. It also improves client-side performance by minifying JavaScript and CSS code (which reduces the code's size and parsing time), batch loading resources (which reduces the number of requests made), and optionally embedding images as data URIs (which can further reduce the number of requests made).

Documentation

 * Migration guide (users)
 * Migration guide (developers)
 * Developing with ResourceLoader – notes on configuring your development environment and on switching ResourceLoader between development and production modes.
 * Using with extensions – a guide to making extensions to work with ResourceLoader.
 * Default modules – an overview of all default modules and their methods, supported with documentation and examples.
 * Vocabulary – the vocabulary used in ResourceLoader (such as Loader, Module, Requirement, etc.)

Project information

 * Status – the status of the project.
 * Version 1 Design Specification – the design specifications developed and maintained throughout the development process.
 * Version 2 Design Specification – the design specifications begin developed for the next version.
 * Requirements – requirements gathered from a variety of sources during the planning stage.
 * JavaScript Deprecations – JavaScript features that are planned to be replaced with modern equivalents.

Todo

 * Test plan (in a Google document somewhere)
 * Schedule (in a Google document somewhere)
 * Task management (Mostly in Google Docs. There is a tracking bug in Bugzilla)
 * Release management plan
 * Community management plan