Speed is a very important but often overlooked feature.
Regarding speed on mobile websites, there are several things to consider.
- Web sites can be very fast to load.
- jQuery significantly slows down websites, just by being loaded and compiled.
- Responsive web design is not the same as optimizing for mobile.
Discussion on the web
A detailed discussion about how jQuery can slow down websites was written by Martin Sutherland. I have confirmed this to be true, and this was the first reason I abandoned jQuery Mobile for use in Ponzu (there were many more important reasons, but this was the first show-stopper).
Arguments against responsive web design were put forward by Jason Zimdars of 37 Signals (Behind the speed: Basecamp mobile).
With Basecamp mobile, the resource sizes are as follows;
PC HTML:42.92KB, CSS: 515.79KB, JS: 273.80KB
Mobile HTML:16.90KB, CSS: 38.91KB, JS: 14.73KB
You can see that they cut down on the size of JS and CSS immensely. Since the browser has much less CSS and JS to parse and compile, the browser responds much faster after a reload (even when CSS and JS are cached).
With the MBSJ2012 Ponzu system, the sizes are the following;
PC HTML:12.20 + 13.61 + 3.09 = 28.90KB, CSS: 29.30KB, JS: 41.13KB
Mobile HTML:13.62 + 12.69 = 26.31KB, CSS: 18.19KB, JS: 40.96KB
Both Basecamp mobile and Ponzu keep the CSS and JS sizes very small.
Compare this to jQuery Mobile;
Mobile HTML: 2.73KB, CSS: 107.31KB, JS: 91.67 + 286.65 = 372.32 KB
Where you can see the difference
When clicking on external links
In other words, jQuery Mobile is OK if you stay if you never leave the site. It get’s terribly slow if you move in and out.
When you want to quickly look up something
When you are at the conference venue and you want to check up on you schedule, you want the page to show up fast. You don’t want to wait for seconds until your schedule shows up.
You want to first load to be fast. jQuery Mobile won’t provide that.
When you click on a link on twitter
The great thing about using the Web for the conference system as opposed to a native application, is that you can link to individual pages. For example, you could put a link on Twitter, telling the world how cool your presentation is and why they must come and see it. Anybody seeing that tweet could simply click on the link, and they will immediately see your abstract.
However with jQuery Mobile, it’s going to take a few seconds until the page shows up. Some people might decide that they don’t have enough time to wait and abort.