Ludzie, odkryłem, że JQuery ma tylko jeden efekt: strona jest ładowana ponownie po naciśnięciu przycisku Wstecz. Nie ma to nic wspólnego z „ gotowym ”.
Jak to działa? Cóż, JQuery dodaje detektor zdarzeń onunload .
// http://code.jquery.com/jquery-latest.js
jQuery(window).bind("unload", function() { // ...
Domyślnie nic nie robi. Ale jakoś to wydaje się wyzwalać przeładowanie w Safari, Operze i Mozilli - bez względu na to, co zawiera moduł obsługi zdarzeń.
[ edit (Nickolay) : oto dlaczego tak działa: webkit.org , developer.mozilla.org . Przeczytaj te artykuły (lub moje streszczenie w osobnej odpowiedzi poniżej) i zastanów się, czy naprawdę musisz to zrobić i spowolnić ładowanie strony dla użytkowników.]
Nie możesz w to uwierzyć? Spróbuj tego:
<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>
Podobne wyniki zobaczysz podczas korzystania z JQuery.
Możesz porównać do tego bez obciążenia
<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>