How to determine if a webpage is a Single Page app

I’ve been working increasingly more with Single page app webpages. Single page apps or SPAs look and behave a lot like traditional webpages. For example, the URL can change between page/view transitions, and additional network requests can be made as a user interacts with content. Because of this, it is difficult to tell whether a webpage was built as a SPA.

Unfortunately, there isn’t a single way to know whether a page is a SPA because it comes down to how the page was built. Here are some of the signs to look for.

  1. Framework – check if the page uses one of these popular frameworks. VueJS, React, Angular and others. Just because a webpage uses one of these frameworks doesn’t mean the page was built as a SPA however. Wappalayzer is useful browser extension that helps identify many useful things about a webpage such as JavaScript frameworks, CMS, CDN and many more useful information about the tech stack. Give the extension a try.
  2. SPAs are usually used on pages with dynamic content. For example, a product listing page that lists out products from a database, checkout process, lead forms, etc.
  3. URL change – Although it’s a best practice to update the URL if substantial sections of the webpage are updated, this can be overlooked. Some SPAs will have the same URL even though the contents of the page changes.
  4. Page doesn’t reload(no new pageload). Only certain sections of the page change when a user performs an action. For example, you can use your browser’s inspector to change a small section of the page such as the navigation and after making this change you can navigate around different pages of the site and you’ll notice that your navigation change persist through the different pages. This wouldn’t happen with traditional webpage. On traditional webpages, inspector changes revert after a user navigates to a new page. Try it out! This is a good test that I use to help identify SPA pages. Although this works for this website, there is no guarantee that other SPAs won’t repaint the navigation so it’s good to experiment with your own website by changing different elements using your browser’s inspector. Reference screenshots below.
Screenshot of SPA website before I deleted a few navigation elements using the browser's inspector.
Screenshot of SPA website before I deleted a few navigation elements using the browser’s inspector.
Screenshot showing Chrome Debugger - removing UNAV element
Screenshot showing Chrome Debugger – removing UNAV element
Screenshot showing Chrome debugger - Showing persistent navigation change in Single Page App
Screenshot showing Chrome debugger – Showing persistent navigation change in Single Page App

Outlook script to export /copy email data

Have you tried selecting an email in Outlook and copying it to learn that it copies the entire .msg file instead of just the raw data such as the subject line or just the sender? Perhaps you want to create a log of emails from certain senders so you can categorize the emails in Excel or just have a printed record. Here’s a handy visual basic for application(VBA) script that does this. I tested this with a folder of over 2,000 emails and it works well. It will likely take a while to execute if select a folder with a large number of emails. To use this code, you’ll have to create a macro in Outlook. Note, the output will be sent to the immediate window. This is similar to the debugging window in Outlook.

Sub PrintSubjectLineForSelectedFolder()
  
Dim olApp As Outlook.Application
Dim objNS As Outlook.NameSpace
Dim olFolder As Outlook.MAPIFolder
Dim msg As Object
 Dim myItems As Outlook.Items

Set olApp = Outlook.Application
Set objNS = olApp.GetNamespace("MAPI")
Set olFolder = objNS.GetDefaultFolder(olFolderInbox)

    Dim objFolderSelected As Folder
     Set objFolderSelected = objNS.PickFolder
    If TypeName(objFolderSelected) <> "Nothing" Then
    
        Debug.Print objFolderSelected
        Set olFolder = objFolderSelected
        'Set olFolder = olFolder.Folders("Test Results")' can also be hardcoded
      
        For Each msg In olFolder.Items

'Debug.Print TypeName(msg)
    If msg Is Nothing Then
'If varValue = Nothing Then

        Exit For
   
	Else

    If Not msg Is Nothing Then
 
        Debug.Print msg.Subject
        
       
   End If
   
   End If
   
Next

    Else
    
        Debug.Print vbCr &amp; "User selected Cancel No Folder selected"
    End If

    Set objFolderSelected = Nothing
    Set objNS = Nothing

End Sub