Code Splitting for Network Bound Web 2.0 Applications

Code Splitting for Network Bound Web 2.0 Applications. Benjamin Livshits, Chen Ding. August 2007.

Modern Web 2.0 applications such as Gmail, Live Maps, MySpace, Flickr and many others have become a common part of everyday life. These applications are network bound, meaning that their performance can and does vary a great deal based on network conditions. However, there has not been much systematic research on trying to optimize network usage of these applications to make them more responsive for end-user interactions. Interestingly enough, code itself, usually in the form of JavaScript that runs within the client browser, constitutes a significant fraction of what needs to be transferred to the client for the application to run. Therefore, one way to significantly improve the perceived client-side performance for a range ofWeb 2.0 applications is to perform judicious decomposition — or splitting — of code and only transfer the code that is necessary just before it is needed. In this paper we propose several code splitting algorithms and explore their effectiveness at improving the responsiveness of large sophisticated Web 2.0 sites.

Once upon a time there was a lot of research on mobile code. It seemed like it was going nowhere. Then came Javascript, AJAX and Web 2.0, and in a worse-is-better fashion Javascript became the mobile code platform of choice. Maybe now is a good time to resume research on the subject...

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Interesting Article, but

Interesting Article, but there is one caveant:

Both our model as well as the experiments de-
scribed in Section 4 assume that HTTP pipelining
is implemented.

None of the "big" Browsers use pipelining by default. And as we are talking about consumer apps, the sentence "please open about:config and activate pipelining" is a no-go. Without the use of pipelining, i doubt there would be much of a win (rather than much more requests to handle for the server).
At the moment, it is best practice to keep the number of javascript and css-files at 3 or lower to keep stress from the server.

pipelining

just some follow-up info on this: Opera9 has pipelining on by default, FF2 has it off by default, and IE7 doesn't support pipelining at all (IE's Eric Law explained that it "fails when the server or intermediary proxies do not support pipelining").

Mobile Code

At the PROG lab of the VUB, Belgium, people are working on systems that allow code to move over the network, retaining state when moving. I' not sure how well this would fit into the idea of code splitting for web 2.0, but it might be quite useful.