Diese Frage geht ins Detail der API.
Ich verwende einen Fork der hervorragenden Matomo-Themenkomponente. Damit können Sie Seitenaufrufe mit Matomo verfolgen. Mein Fork ist ein Versuch, Probleme zu umgehen. Er ist im Wesentlichen identisch. Das unten beschriebene Verhalten tritt auch bei der ursprünglichen Komponente auf.
Die Komponente verwendet den Callback onPageChange, um eine Matomo-API bzw. -Funktion zu konfigurieren.
Das Problem, das ich habe, ist, dass der Callback onPageChange zuweilen vor der Generierung des Seitentitels aufgerufen wird. Das ist inkonsistent. Manchmal ist der Titel vollständig vorhanden, manchmal nicht.
Das Ergebnis ist, dass der Matomo-Protokollverlauf eine Mischung aus vollständig gebildeten und unvollständigen Seitentiteln enthält.
Wenn ich mir den Discourse-Quellcode anschaue, wird dies vor dem Trigger page:changed aufgerufen:
Das sieht alles so aus, als ob es funktionieren sollte – der Titel sollte bis zum Aufruf von onPageChange aktualisiert sein. Das ist er jedoch – zumindest nicht konsistent.
Es gibt ein weiteres Problem, das damit zusammenhängen könnte. onPageChange wird manchmal zweimal aufgerufen. Das ist meine Workaround-Lösung (und der Grund für den Fork):
Im Fall, dass onPageChange zweimal für denselben Seitenaufruf aufgerufen wird, liefert einer der beiden Aufrufe ein url-Argument, das von der aktuellen Fensterposition abweicht. Ich prüfe dies und breche frühzeitig ab.
(Beachten Sie, dass ich das page:changed-Ereignis über onAppEvent und nicht über onPageChange behandle, aber ich sehe das gleiche Verhalten in beiden Fällen.)