Các bạn, tôi thấy rằng JQuery chỉ có một hiệu ứng: trang được tải lại khi nhấn nút quay lại. Điều này không có gì để làm với " sẵn sàng ".
Cái này hoạt động ra sao? Chà, JQuery thêm một trình nghe sự kiện onunload .
// http://code.jquery.com/jquery-latest.js
jQuery(window).bind("unload", function() { // ...
Theo mặc định, nó không làm gì cả. Nhưng bằng cách nào đó, điều này dường như kích hoạt tải lại trong Safari, Opera và Mozilla - bất kể trình xử lý sự kiện có chứa gì.
[ chỉnh sửa (Nickolay) : đây là lý do tại sao nó hoạt động theo cách đó: webkit.org , developer.mozilla.org . Vui lòng đọc các bài viết đó (hoặc tóm tắt của tôi trong một câu trả lời riêng bên dưới) và xem xét liệu bạn có thực sự cần phải làm điều này không và làm cho trang của bạn tải chậm hơn cho người dùng của bạn.]
Không thể tin được? Thử cái này:
<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>
Bạn sẽ thấy kết quả tương tự khi sử dụng JQuery.
Bạn có thể muốn so sánh với trang này mà không 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>