SPA

What is a Single Page Application?

A single-page application (SPA) is a web application or website that interacts with the web browser by dynamically rewriting the current web page with new data from the web server, instead of the default method of the browser loading entire new pages. The goal is faster transitions that make the website feel more like a native app.

In a SPA, all necessary HTML, JavaScript, and CSS code is either retrieved by the browser with a single page load, or the appropriate resources are dynamically loaded and added to the page as necessary, usually in response to user actions. The page does not reload at any point in the process, nor does it transfer control to another page, although the location hash or the HTML5 History API can be used to provide the perception and navigability of separate logical pages in the application.

We’re so used to being online and with a cell phone with our hands that often we don’t even stop to think about what kind of technology is helping us run this or that app. Usually, that’s not a problem - we don’t think about the electricity when we turn on the lights. However, when you face the decision to create an app for your business, then it’s conducive to understand what does SPA (single page application) means and how is it different from Multi-Page Applications (MPA).

In this issue:

  • Single Page Application Definition
  • Single Page Application Advantages
  • Single Page Application Disadvantages
  • Single Page Application Migration Issues
  • Benefits of SPA for Users
  • Benefits of SPA for Businesses
  • Single Page Application Architecture
  • SPA and Angular, React.js, Vue.js, and .NET

What Does Single Page Application Mean and Why Do We Need Single Page Application

A single-page application is an app that doesn’t need to reload the page during its use and works within a browser. Think of the apps you use daily: Facebook, Google Maps, Gmail, Twitter, Google Drive, or even GitHub. All these are examples of a SPA.

One of the best advantages of a correctly-configured SPA is the user experience (UX), where the user enjoys a natural environment of the app without having to wait for the page reloads and other things. You remain on the same page, which is powered by JavaScript programming language.

Before we Go further, there are three abbreviations you’ll see in this article:

  • SPA - single-page application (like we’ve mentioned above)
  • MPA - multi-page application (a traditional app that loads new pages when you click a link)
  • PWA - progressive web application (a website that is built using JavaScript or its frameworks and can act like an app, i.e., you can, for example, add it to your mobile phone homepage as an app)

Single Page Application Advantages: Why Use Single Page Application?

The main advantage of single-page applications is its speed. Most resources SPA needs (HTML + CSS + Scripts) are loaded at the launch of the app and don’t need to be reloaded during the usage. The only thing that changes is the data that is transmitted to and from the server. As a result, the application is very responsive to the user’s queries and doesn’t have to wait for client-server communication all the time.

Quotes about the impact of the pagespeed

Numerous studies by Google and key findings by companies such as Amazon and WalMart show that if a page takes more than 200 milliseconds to load, it has the potential to ruin your business or, at the very least, cost you much money. For example, Amazon says that 1 second of additional delay in page load costs them 1% of sales (which, considering Amazon’s amount of sales, is $1.6 billion per year.)

From a developer’s point of view, the creation of such an app is streamlined and optimized. You don’t need to write code to render the pages on the server. You don’t even really need a server to begin the development process. You can kick off from a file to get started. Besides, the developer can completely reuse the same backend server-side code and efficient API for the web application and a native mobile app.

Single-page applications are excellent when you have a team of developers working together. It allows backend developers to focus on the API, while the frontend developers can pay more attention to creating the best user experience based on the backend API and implementing a beautiful user interface.

Debugging a single-page application is also easy using the Chrome browser since it has special tools for Angular Batarang and React (the technologies used for SPAs.) Using a console, you can monitor network operations as well as investigate various page elements and associated data.

Caching process is also quite efficient - the application sends only one request, stores all data transmitted, and can use this data. This is especially important at times when the user can have poor connectivity - s/he can still use your app since it’s synchronized with the server when the connection improves.

We’ve mentioned Progressive Web Apps (PWA) above, and SPAs can easily be transformed into a PWA. In turn, this enables the developers to provide local caching and offer the offline experience to the clients and users.

Single Page Application Disadvantages: Why Not a Single Page Application?

Despite all the advantages of the single-page applications, nothing is ever perfect. Let’s check out the times when the SPA can be not an ideal solution.

What do we mean by single page application disadvantages?

Single-page applications put a more significant load on the browser. For example, if your users have low power devices, they will have a poor app experience in terms of speed.

Additional problems with JavaScript arise because you have to make sure there are no memory leaks. Since the app can run for a long time - hours at a time (as opposed to the MPA, where the lifespan of a page was counted in minutes), you need to make sure your SPA doesn’t consume more memory than it needs. Otherwise, the pleasure of fast-loading pages will be destroyed by the sluggishness of unavailable memory on the user’s device.

One more disadvantage of JavaScript is that users simply can have it disabled on their devices, and then you need to think of additional ways of how they can access the information on your website or your app without JavaScript.

Another critical thing to remember about using or building a SPA is security. Due to cross-site scripting (XSS) and the fact that no new pages are loaded, hackers can gain access to your website and inject new scripts on the client-side.

Therefore, if you are thinking about building a single-page application for your business, make sure you take the necessary precautions not to let this happen.

Another security issue is the privacy of sensitive data. The initial page load should not contain any information that shouldn’t be available for all users. Since the entire SPA loads right away to the user’s device, you might accidentally give away data that should be behind a login or not available at all.

SEO Optimization for Single-Page Applications

SEO optimization is tricky when you have a single-page application, which is why we decided to dedicate a separate Section to it in the SPA Disadvantages.

It’s safer to use SPAs when you don’t rely on search engine optimization (SEO) as much, for example, if your app can only be accessed via a login.

If you have a blog, on the other hand, it’s harder for the search engines to index your SPA website as opposed to traditional server-rendered pages. This is because the URL doesn’t really change, and different pages don’t usually have their URL addresses.

Therefore, our advice to you: if you don’t want to bother with the URL settings, choose a framework that supports server-side rendering (SSR). Additionally, don’t use iframe Windows, use static URLs, and optimize the scripts on your page to speed them up. Finally, make sure your pages have HTML5 for Google crawler to be able to access them.

You also should pay special attention to the server messages, especially the 200 and 404 errors.

Single Page Application Migration Issues

Single-page applications sound like they were sent from heaven to simplify users’ experience with the website. It’s fast and convenient; it’s almost perfect. Is it really so?

When you are thinking about migrating to the single-page application from an MPA, you need to stop and consider the pros and cons (that we’ve mentioned above.)

When to Use a SPA

You might be asking, “When should I use a single page application?” When you have a business or a personal website that needs a dynamic platform and small data volume, the single-page application is a good idea. It is also a great option if you are planning to develop a mobile app in the future, since, as we mentioned above, the backend API can be used for both the web and mobile apps.

The main drawback is the SEO, but the architecture is suitable for Software-as-a-Service (SaaS) platforms, closed communities, and social networks (which is why Facebook uses it). The reason for this is that these sites don’t need optimization for search on Google.

When to Use an MPA

Large companies with a broad range of services and products would benefit from a more traditional multi-page application. Such businesses include online stores, company sites, catalogs, and marketplaces. Managing such an application would also be much easier since it is possible to connect it to multiple user databases.

Finally, these types of companies would need search engine optimization options since a lot of them would want to be found in Google, Bing, and other search engines (to sell the products or services they offer.)

Benefits of SPA for Users

The main advantage of single-page applications for end-users is, of course, the speed at which the app loads as well as the ability to work offline.

SPA offers a linear user experience, which means that it is easy to navigate the website and understand where to find this or that thing. For example, the Saucony SPA has a clear beginning, middle, and end. Using UI/UX design, the Saucony app developers have used parallax scrolling and transitions to make the customer journey a pleasurable one.

Single-page applications are great on mobile devices too, since most of the time, all the users need is to scroll (think of the endless Facebook wall). You don’t have to click any links, and you just enjoy the scrolling.

Benefits of SPA for Businesses

When it comes to businesses, single-page application development usually takes LESS time since the same backend API can be used for both the web and mobile. As a result, the information flow is streamlined, and it becomes much easier to create a standalone native mobile application.

Considering the advantages in speed optimization of the SPA, businesses can also benefit because the users would be more interested in using an app that is fast (ergo, purchase something or just use the app more often.)

src's:
huspi.com
en.wikipedia.org