The Illusion of Interactivity
Last night I spent a while putting entries into a reporting web application. The application allowed the user to add new data entry lines using some Javascript magic by clicking an "add line" button. Of course, when I finally clicked the save button, after an hour or so of putting entries into the system, I was greeted with the Login screen, as my session had timed out.
So I got to spend another hour doing the report over, this time saving frequently as I went, and I spent the time thinking about how things should have been implemented to prevent this. The lesson learned is that if you're going to give your users the illusion that your webapp is keeping state internally, you damn well better be doing something about it. It probably would have taken the developers all of an hour to add an XmlHttpRequest call to ping the session to keep it alive each time a row is added, or better yet, save the entire form automatically. That simple change would have solved the problem, and if the form was saved automatically each time, it would have also prevented people who lose their internet connection in the midst of doing the report from losing all of their work. We have to remember as we build our newfangled interactive webapps, with what I’m now calling the Illusion of Interactivity, that the web is still a stateless beast. If we forget that we’re sure to screw our users in the long run.