⚠️ Placeholder Page - Future Implementation
This page is a placeholder for Phase 2.
This page documents what WILL be tested when the ListenLayer tracking script is integrated. The code examples below are commented as "future" because they represent planned functionality, not current implementation.
Persistence Validator (Future Test)
Purpose
This page will test cross-page data persistence using sessionStorage and the "Nuclear Persistence" cascade strategy. This ensures tracking data survives across navigations, redirects, and page reloads within a session.
What Will Be Tested
- sessionStorage persistence across page navigations
- Data recovery after redirects (302, meta refresh, JavaScript)
- Multi-layer persistence cascade (sessionStorage → URL params → POST body)
- Session ID continuity across the user journey
- Data cleanup and expiration strategies
Nuclear Persistence Cascade
The "Nuclear Persistence" strategy uses multiple fallback layers to ensure data survives even in hostile browser environments:
Layer 1: sessionStorage (primary)
↓ If unavailable or cleared:
Layer 2: URL query parameters
↓ If stripped or lost:
Layer 3: Hidden form fields in POST
↓ If POST fails:
Layer 4: Cookie fallback (last resort)
Storage Mechanisms
sessionStorage (Primary)
- Lifespan: Until browser tab closes
- Capacity: ~5-10MB per origin
- Scope: Same-origin only
- Use case: Session ID, user journey data, form state
URL Parameters (Fallback Layer 2)
- Lifespan: Duration of URL
- Capacity: ~2KB practical limit
- Scope: Visible in browser history
- Use case: Session ID, source tracking
Future Implementation
When the ListenLayer tracking script is integrated, this page will include:
// Future: Nuclear persistence write
function persistData(key, value) {
// Layer 1: sessionStorage
try {
sessionStorage.setItem(key, JSON.stringify(value));
} catch (e) {
console.warn('sessionStorage failed, using URL params');
}
// Layer 2: URL parameters (for critical data)
const url = new URL(window.location);
url.searchParams.set('_ll_' + key, value);
history.replaceState({}, '', url);
}
// Future: Nuclear persistence read
function readData(key) {
// Try Layer 1: sessionStorage
try {
const stored = sessionStorage.getItem(key);
if (stored) return JSON.parse(stored);
} catch (e) {}
// Fallback to Layer 2: URL parameters
const params = new URLSearchParams(window.location.search);
return params.get('_ll_' + key);
}
Test Workflow (Phase 2)
The following test workflow will be implemented:
- Page A: Write session data to sessionStorage
- Navigate to Page B via redirect (data should persist)
- Page B: Verify sessionStorage contains data from Page A
- Clear sessionStorage (simulate hostile environment)
- Navigate to Page C with URL params (Layer 2 fallback)
- Page C: Verify data recovered from URL parameters
- Submit form with hidden fields (Layer 3 fallback)
- Verify data continuity across all 3 layers
Expected Behavior (Phase 2)
- Session ID persists across all page navigations
- User journey data is never lost (nuclear persistence)
- Console logs show which persistence layer is active
- Network tab shows tracking data in requests
- Data is cleaned up when session expires