document.querySelector('body').innerHTML = this.response;
Wow. Das ist aber wohl kaum der Sinn des XHR-Requests, den ganzen Seiteninhalt zu ersetzen.
Nun, ich zeige es Dir ja, dass eine SPA auf diese Art und Weise funktioniert. Meine Idee es so zu machen ist über 10 Jahre alt. Nur kannte ich damals den Begriff SPA noch nicht.
Ebensowenig dürfte es Sinn der Sache sein, in der history die gesamte Seite zu speichern.
Die History ermöglicht dem Benutzer die Navigation Vor/Zurück und auch das funktioniert einwandfrei ;)
PS: Mein Konzept ist, eine Website mit beliebig vielen Unterseiten über eine einzige Einstiegsseite in den SPA-Modus zu schalten. Du kannst diesen Modus jederzeit wieder verlassen indem Du einen beliebigen Link in einem neuen Fenster öffnest.