From 098a3e1aa033f7b387c36c5dfa8af00896bdacca Mon Sep 17 00:00:00 2001 From: Trevor Parscal Date: Mon, 20 Sep 2010 23:32:28 +0000 Subject: [PATCH] Implemented request grouping on the client. --- resources/mediawiki/mediawiki.js | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/resources/mediawiki/mediawiki.js b/resources/mediawiki/mediawiki.js index 14be5c753d..3d94d2cb5d 100644 --- a/resources/mediawiki/mediawiki.js +++ b/resources/mediawiki/mediawiki.js @@ -502,16 +502,27 @@ window.mediaWiki = new ( function( $ ) { ); } } else { - // Calculate the highest timestamp - var version = 0; + // Split into groups + var groups = {}; for ( var b = 0; b < batch.length; b++ ) { - if ( registry[batch[b]].version > version ) { - version = registry[batch[b]].version; + var group = registry[batch[b]].group; + if ( !( group in groups ) ) { + groups[group] = []; } + groups[group][groups[group].length] = batch[b]; + } + for ( var group in groups ) { + // Calculate the highest timestamp + var version = 0; + for ( var g = 0; g < groups[group].length; g++ ) { + if ( registry[groups[group][g]].version > version ) { + version = registry[groups[group][g]].version; + } + } + requests[requests.length] = $.extend( + { 'modules': groups[group].join( '|' ), 'version': formatVersionNumber( version ) }, base + ); } - requests[requests.length] = $.extend( - { 'modules': batch.join( '|' ), 'version': formatVersionNumber( version ) }, base - ); } // Clear the batch - this MUST happen before we append the script element to the body or it's // possible that the script will be locally cached, instantly load, and work the batch again, -- 2.20.1