Prototype.js and jQuery had a big hand in the latter.
The big inbetween OWA and Gmail, was Oddpost, which was also IE only, and was purchased by Yahoo three months after gmails April Fool announcement, to become Yahoo Mail. In a roundabout way, you can argue gmail was a copy of what was eventually Yahoo Mail.
I might be wrong, but I think even early versions of Gmail did something similar.
Started in 2000 in Exchange/Outlook web and took a year or two to become prevalent in the browsers and other places.
https://medium.com/@mohamedtayee3/make-an-http-request-in-ja...
AJAX streamlined the process, but there were a lot of hacky ways to get similar dynamic HTML effects. I like the idea of keeping the HTTP connection open, but that seems quite resource intensive… particularly for the early 2000s.
I bet ASP had something similar too around the same time
Basically the server sends a multipart content type header, never sends a content size, and simply doesn’t terminate the connection, so the browser just waits patiently for more parts and renders them as they come. My team experimented with it a bit back in 2000 for doing what would eventually be termed JSONP Streaming. It was really cool tech, but we didn’t have a practical application for it.
For highly interactive web apps you would still benefit from a SPA since that's what they're designed for.
And for infinite pages, a long forgotten technique: for scrolling or continuing content, you could use "multipart" since the 90s, effectively streaming the additional page content to the user as you got more bytes to send them.