A while ago I was asked to evaluate a web based product from another Software Vendor. I won’t elaborate on who the Vendor was, or even what type of Product. Suffice to say that it was a good product, from a reputable Vendor. During the course of my evaluation I was struck with a nagging feeling that while the product was decent, I was not enjoying the experience of using it. I then realized it was not the functionality of the application, but rather the multi-page nature of the web design that left me feeling unsatisfied.
Whereas modern applications are migrating towards a Single Page Application (SPA) model, this web app still used hyperlinks to open new pages, and left me waiting somewhat impatiently for the screen to refresh while it fetched new information from the Server. I had already gotten used to using SPAs that load all the necessary information upfront, or in a background thread as required. Rather than loading pages in response to user actions, the SPA only loads the information it needs, and dynamically uses that information to update the user interface.
The SPA client behavior starts to resemble more closely what we have come to expect from traditional desktop applications. In the same way the desktop application migrated from a multi-document model to single document, the same is now happening with web applications. Although there is an initial startup penalty when loading an SPA, this is a onetime hit, and is more than compensated for by the responsive feel of the application once it is loaded. Since the SPA loads data in the background, the user experience is fluid, and is now approaching what was once only achievable with a desktop app.
Senior Software Engineer