Impressive (and not so much)

Stumbled on this article on a blog linked to from another blog I read occasionally. It talks about how YouTube was inaccessible in remote parts of the world where they’re still using dial-up (or other low-bandwidth connections). The problem was that the page weight (the combined size of the page and all elements of it, including linked JavaScript and CSS files and images) took too long to load on low-bandwidth connections, and users simply avoided it. Then they rewrote the code, cutting it from 1.2 megabytes to 98 kilobytes. Instead of taking 20 minutes to get to the first frame, it now took only two minutes – and “large numbers of people who were previously unable to use YouTube before were suddenly able to.”

I’ve been frustrated a lot lately by the software that I work with. I’m referring to the browser interface to the back-office software I do independent web development for. It’s obvious the company’s developers don’t care about performance, and I end up spending countless hours trying to overcome this attitude, looking for ways to eek out faster page loads. Some other developers just add a “page loading” message, but that’s the lazy method.

There are some performance problems I can’t overcome, so I end up using AJAX to make it seem faster. I’ll load the fast elements right away, then use either XMLHttpRequest or a hidden iframe to load the slower elements, showing “loading” placeholders where the data will eventually go. It’s not a perfect solution – it doesn’t actually reduce load time – but I get far fewer complaints from clients because it appears to reduce load time. And, as they say, perception is everything.