Skip to content

Commit

Permalink
PagePerformance: Delay log of page view/visit to include onload metric
Browse files Browse the repository at this point in the history
  • Loading branch information
rr-it committed May 16, 2023
1 parent ffc4d85 commit 7414fe1
Showing 1 changed file with 37 additions and 0 deletions.
37 changes: 37 additions & 0 deletions js/piwik.js
Original file line number Diff line number Diff line change
Expand Up @@ -4176,12 +4176,49 @@ if (typeof window.Matomo !== 'object') {

// append already available performance metrics if they were not already tracked (or appended)
if (configPerformanceTrackingEnabled && !performanceTracked) {
if (!performanceAvailable && supportsSendBeacon()) {
delayLogPageViewWithPerformanceMetrics(request, configTrackerPause, callback);
return;
}
request = appendAvailablePerformanceMetrics(request);
}

sendRequest(request, configTrackerPause, callback);
}

/*
* Delay log of page view / visit
* Wait until PerformanceMetrics are available or visitor leaves page.
*/
function delayLogPageViewWithPerformanceMetrics(request, configTrackerPause, callback) {
// - Ensure page view is only logged once.
// - Matomo context might change in the meantime: Store request in closure to ensure original context.
var logOnce = function() {
var store = { request: request, configTrackerPause: configTrackerPause, callback: callback};
var hasRunOnce = false;
return function() {
if (!hasRunOnce) {
hasRunOnce = true;
store.request = appendAvailablePerformanceMetrics(store.request);
sendRequest(store.request, store.configTrackerPause, store.callback);
}
};
}();

/* Performance metrics are available, once onload event has finished */
trackCallbackOnLoad(function(){
// Onload event is fired. Wait 15 seconds to assume it has also finished.
setTimeout(logOnce, 15000);
});
/* Visitor leaves page */
addEventListener(windowAlias, 'visibilitychange', function () {
// if not visible
if (documentAlias.visibilityState === 'hidden') {
logOnce();
}
}, false);
}

/*
* Construct regular expression of classes
*/
Expand Down

0 comments on commit 7414fe1

Please sign in to comment.