Desative o Cache de Retrocesso do Firefox e Safari

Apenas um rápido lembrete para mim, e porque esse tipo de linhas de código (ou hacks) são estranhos. Eu só tenho que postar.

Raciocínio: Se você deseja escrever um aplicativo de uma página, que não recarrega uma página, mas oferece um mecanismo para fazer o login através de parâmetros de URL, você pode não gostar do Firefox armazenando em cache todo o estado do aplicativo da página anterior. Porque se você fizer login como usuário A e depois fazer login como usuário B, clicar no botão Voltar apenas mostrará o aplicativo em um estado que está conectado como usuário A com todos os seus dados. Isso é estranho. Mais estranha é a solução para este problema:

// Does nothing but break the bfcache of firefox and safari
// On FF, if you use the login via paramater functionality, hitting back after relogin via params
// would serve the whole page from memory, so that you are essentially look at the page and book stuff
// for the previous logged in user. This should clear that memory cache.
+window.addEventListener('unload', function () {});

Parece que adicionar um window.unloadmanipulador à página não permite que o Firefox armazene o estado do aplicativo no cache. Por que essa peculiaridade funciona é um mistério para mim. Se alguém tiver uma explicação, gostaria de dar aqui.

E aí está, de onde tive essa ideia: https://madhatted.com/2013/6/16/you-do-not-understand-browser-history