How do you make web browsing faster on a GPRS connection? The answer seems to be by injecting huge blocks of javascript into pages, turning 6KB of well-formed XHTML into 23KB of junk that refuses to render because it’s invalid.
I’ve been aware of this interference with my mobile traffic for a while, with the most obvious signs being the unpleasant look of images that have been compressed and the appearance of http://1.2.3.4 in the list of sites blocked by NoScript. What I hadn’t done was made the connection with an occasional inability to access various sites, most noticably Sam Ruby’s.
I complained to Sam about the un-parseable XHTML he was serving up to me and discovered that nobody else was reporting a problem, so I investigated further and found that while on a normal connection, I got a nice clean 6K document back, retrieving the same URL via GPRS got me 23K of mangled XHTML. For more details, see Exhibit A, which is the “accelerated” version of this.
The Javascript that has been injected to bloat up the page is commented using <-- but the code then contains -- in the form of postdecrement operators. While that’s permissible in HTML, it’s not at all acceptable in XML and Firefox rightly throws up an error and refuses to render the page.
Luckily, at least for UK O2 GPRS users, there is a way to bypass this web accelerator (which I believe is provided by ByteMobile) – in the GRPS settings change the username to be “bypass” instead of the default “faster” or “mobileweb”. By bypassing the “acceleration” I got myself 6K of working page, rather than 23K of error message.
Although using the accelerator does seem to have an advantage on image-heavy pages (if you can put up with the degraded quality) it doesn’t seem unreasonable to expect it not to break valid XHTML, and perhaps it should also consider not sticking its nose into pages where it is going to multiply the overall size of things rather than reduce them.

3 comments
Comments feed for this article
Trackback link: http://ciarang.com/posts/mobile-web-acceleration/trackback