Skip to content

Commit

Permalink
feat: handle pre-rendering
Browse files Browse the repository at this point in the history
  • Loading branch information
kptdobe committed Oct 8, 2024
1 parent 6b83226 commit bb11187
Showing 1 changed file with 14 additions and 2 deletions.
16 changes: 14 additions & 2 deletions modules/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -112,9 +112,21 @@ function addCWVTracking() {
function addNavigationTracking() {
// enter checkpoint when referrer is not the current page url
const navigate = (source, type, redirectCount) => {
// target can be 'visible', 'hidden' (background tab) or 'prerendered' (speculation rules)
const payload = { source, target: document.visibilityState };
// reload: same page, navigate: same origin, enter: everything else
if (type === 'reload' || source === window.location.href) {
if (document.prerendering) {
// listen for "activation" of the current pre-rendered page
document.addEventListener('prerenderingchange', () => {
// pre-rendered page is now "activated"
payload.target = 'prerendered';
sampleRUM('navigate', payload); // prerendered navigation
}, {
once: true,
});
if (type === 'navigate') {
sampleRUM('prerender', payload); // prerendering page
}
} else if (type === 'reload' || source === window.location.href) {
sampleRUM('reload', payload);
} else if (type && type !== 'navigate') {
sampleRUM(type, payload); // back, forward, prerender, etc.
Expand Down

0 comments on commit bb11187

Please sign in to comment.