We were using that XMLHTTP object as far back as 1999 (I just went to look at old source code) to load page fragments do quasi-SPA stuff before it was a thing.
It was completely unnecessary (at least the look and feel part) but the ability to load in new information into the UI without a full refresh was great.
At the time this was running on Apache 1.1 via Perl CGIs and backed by an mSQL database (that was single-threaded!) so we wanted to minimize complex SQL queries as much as possible..
We eventually moved to a system that would batch pre-render customer details and call history to static HTML overnight when our call center was closed, to reduce the startup time of bringing up a customer's info when the agent had them on the phone. Then for that day we'd use XMLHttp to dynamically append new information from the DB (using a limit statement) and then re-build the static files the next night etc..
In hindsight, we did some creative problem solving for a bunch of self-taught 20-year-olds in the 90s.
If you read ancient articles like this one https://support.microsoft.com/en-us/topic/dynamic-page-updat... you can truly see just how much it changed the internet.