Launchpad JavaScript now combo loaded and faster than ever.

Network graph of the combo loaded JavaScript.

Updated network graph

Back in January a side project was started to update the JavaScript used in Launchpad. Launchpad has been using YUI 3.3.0 for a long time, very successfully, however recent advances in YUI 3.5 and higher have added some great tools for development that Launchpad can take advantage of. In order to facilitate easier upgrades our YUI library version Launchpad has been moved to using a combo loader for serving out JavaScript.

This means, that instead of a single launchpad.js file that can be upwards of 3MB in size, each request builds a list of JavaScript modules needed for the current page to work, and the combo loader only sends down those modules. This drastically cuts down on the download size of the JavaScript for users. These combo loaded JavaScript files are also cached for speedy serving to other users of Launchpad.

The combo loader also allows us to specify which YUI version to load via a tweak to the url. In this way we can easily test new version of YUI side by side with the current stable version as they come out. This allows Launchpad to keep with future YUI released much faster.

We’re excited that today Launchpad has moved from YUI 3.3.0 to 3.5.1 and is now served by the combo loader. This change provides a faster experience for users along with easier maintenance and new JavaScript library features for developers.

We’ve still got more to do though. YUI just released version 3.7 and we aim to push that into production faster than ever before. Please let us know how these changes work for you.

Launchpad also wants to thank the folks over at YUI for continuing the great work on a tool that Launchpad heavily depends on.

3 Responses to “Launchpad JavaScript now combo loaded and faster than ever.”

  1. dolik.rce Says:

    Good to hear that only necessary things will be transferred. Caching on server side is also great, but what about client side caching? All the scripts seem to be comming from same url, will the browser be able to cache it effectively?

  2. Richard Harding Says:

    Yep, the browser will cache the files. The url query strings are unique based on the list of required modules. The browser takes those into account when caching and we set the caching limit waaay out into the future.

  3. Lockal Says:

    Could you optimize https://bugs.launchpad.net/+icing/rev16022/inline-sprites-1.png one day please? The size of this image is 20×9805 and it is the worst sprite map I have seen in my life. The actual bug comes from firefox ( https://bugs.launchpad.net/ubuntu/+source/firefox/+bug/605567 ), but why the size of image should be so big, why there are so much empty space, why you can’t just use multiple columns in a single image? Launchpad is a real pain with this.

Leave a Reply