Ragazzi, ho scoperto che JQuery ha un solo effetto: la pagina viene ricaricata quando si preme il pulsante Indietro. Questo non ha nulla a che fare con " pronto ".
Come funziona? Bene, JQuery aggiunge un listener di eventi onunload .
// http://code.jquery.com/jquery-latest.js
jQuery(window).bind("unload", function() { // ...
Per impostazione predefinita, non fa nulla. Ma in qualche modo questo sembra innescare un ricaricamento in Safari, Opera e Mozilla, indipendentemente dal contenuto del gestore eventi.
[ modifica (Nickolay) : ecco perché funziona in questo modo: webkit.org , developer.mozilla.org . Leggi quegli articoli (o il mio sommario in una risposta separata di seguito) e considera se hai davvero bisogno di fare questo e rallenta il caricamento della tua pagina per i tuoi utenti.]
Non ci credi? Prova questo:
<body onunload=""><!-- This does the trick -->
<script type="text/javascript">
alert('first load / reload');
window.onload = function(){alert('onload')};
</script>
<a href="http://stackoverflow.com">click me, then press the back button</a>
</body>
Vedrai risultati simili quando usi JQuery.
Potresti voler confrontare con questo senza onunload
<body><!-- Will not reload on back button -->
<script type="text/javascript">
alert('first load / reload');
window.onload = function(){alert('onload')};
</script>
<a href="http://stackoverflow.com">click me, then press the back button</a>
</body>