v149 · Demo 1
Connection Lifecycle Observer
Open a WebSocket, navigate away, come back via back button — and watch the page lifecycle + WebSocket events unfold in the log.
WebSocket state:
CLOSED
BFCache:
—
Lifecycle Log
Open a WebSocket above to start logging. Then navigate away and back.
how it works
// On pagehide, Chrome 149 closes open WebSocket connections
// so the page can enter BFCache (persisted: true).
window.addEventListener('pagehide', (event) => {
if (event.persisted) {
// Page entering BFCache — WebSocket will be auto-closed by Chrome 149
console.log('Entering BFCache, WebSocket will be closed');
}
});
// On pageshow, detect BFCache restore and reconnect
window.addEventListener('pageshow', (event) => {
if (event.persisted) {
// Page restored from BFCache — reopen WebSocket
console.log('Restored from BFCache, reconnecting…');
openWebSocket();
}
});
// Pattern: always close gracefully and reconnect on restore
ws.addEventListener('close', (event) => {
if (restoredFromBFCache) reconnect();
});
see also
implementation reference
Need the exact API surface, compatibility boundaries, errors, lifecycle, and source links? Read the matching gendn reference ↗