|
Architectural issues with AJAX requests and user journeys |
The more I use non standard ways of loading data and online content the more issues I uncover with how users can interact with a platform.
Adopting new technologies to build applications is all well and good but what implications does this bring to bear on your users? How do they apply their normal usage habits to your new and differently architected application?
There are a slew of existing technologies, and new ones emerging all the time that allow developers to break out of the traditional flow of an application or website.
Think about how things were ten years ago. Users loaded pages in sequential fashion. This was a clearly defined sequence from both a user journey point of view and from a technology point of view. If you looked in a directory on the server you could probably quite clearly see all the pages that made up a journey. They were probably entirely encapsulated in one system routine that included related files such as CSS and images, but essentially each pages was standalone. This sort of system helped users form browsing habits, such as using the back button and bookmarking individual pages.
Now skip forward ten years to now. Technologies like AJAX and JQuery allow a huge variety of display states and page loading methods. It is now a very simple task to inject dynamic content from a variety of sources into your pages, completely removing them from the normal flow of a traditional application.
Similarly there are major differences in back end data integration options. Systems like remote WebServices and Cloud based data layers that allow for remote data to be held elsewhere and not persist in any real way on your platform.
These technologies are viewed as new and dynamic ways of building applications by technical experts. But the biggest danger with them is that they fundamentally contradict how users have learnt to use the internet, and by association your applications.
As an example case it is now possible to build an entire application that triggers no new page impressions in a browser at all. This example application does not use its own data but pulls statistics from an Amazon based cloud service. But the Cloud service isn't a static database, it is constantly being updated and evolving with use. The problem's this example faces are many, the user cannot effective bookmark any specific point in the application. They cannot jump back into it at a desired point. Also if they perform any calculations or arrive at any recommendations how do you retrieve them? There is no local storage and you cannot count on the data being in the same state when you next visit.
Building applications in a traditional fashion means that you inherit the usability and standardisation that users are accustomed to from modern browsers. Removing the 'comfort blanket' of a browsers standard controls can seriously impact on the perceived usability of an application. I've been encountering some of these perceived issues and over the next few weeks I hope to explore and document how you can overcome them.
When one first dives head first into Ajax, after working primarily within a server-side environment for so long, these questions will always arise. Five years ago, I might have agreed with your conclusions. But, sites like Facebook have changed user expectation on general web interaction, and (as an example) disprove some of the notions you've discussed. The 'new' application, that you describe, is becoming more and more prevalent.
Your concerns on application state, the back button, and internal application linking, are things that have been addressed already. There are different solutions for each, but Google can help you find the way. Ajax development is a bit like the mindshift of moving from spaghetti code to OO, or straight procedural programming to working with frameworks; you have to think in a more non-linear way and focus on an event driven architecture rather than the standard point, click, reload.
It requires a great deal of thought and planning, when building an Ajax application. Your user experience focus has to be ten times what you might do for a static site. The ultimate benefit is, if done right, your use of Ajax will improve the user experience so significantly that it brings more people to the site, or keeps people on the site longer, or both (content will be important there too, or course.)
I agree with you on your point of the ‘new’ application model becoming more and more prevalent. The web is definitely moving on in terms of how it is structured.
I am a little more reserved than you about the fact that users are becoming more used to new types of interaction, but I think that is because my client base is primarily the Charity sector and Financial services, and neither of those have a user base that can really be considered to be at the forefront of evolving usability.
Also the points about the application state, back button and linking etc are incredibly valid. Recently I’ve been lucky enough to be in the rare position of architecting a few entirely new platforms, and that has given me the opportunity to really dig into depth about the issues (and their solutions) raised here, hopefully I’ll write up some of those findings soon.
Thanks for the comments :-)