If you think that AJAX monitoring and page load time will not help you, then I can suggest that you can use Transaction monitoring. It can simply done by measuring time between two states or two pages.
To test locally, using console.time
:
console.time('page_name');
// Anything goes here
console.timeEnd('page_name');
Using performance.now
var start = window.performance.now();
...
var end = window.performance.now();
var time = end - start;
Using Atatus service
If you are looking for service, you can try https://www.atatus.com/ which helps you to measure between transactions in real time.
In atatus, you can measure between transactions or states by
atatus.beginTransaction("page_name");
...
atatus.endTransaction("page_name");