Mejora progresiva simple, sin marco, etc:
/** enhance clicks on .xhr elements: */ window.addEventListener('click', function(e){ var t = e.target; if(t.closest('.xhr') || t.classList.contains('xhr')){ fetch( t.href, {} ).then(function(response){ // .. }).then(function(json){ window.history.pushState( [], '', t.href ); // change markup on the page, etc.. }); } }, false); /** listen to back */ window.addEventListener('popstate', function(e) { // how to leverage BF-cache here? // can it be done? }); El comentario debajo popstate lo dice todo: ¿hay alguna manera de permitir que el navegador use automáticamente su caché BF en el evento popstate?