Hope ai đó đã một câu trả lời tốt như thế này:trang tải lại trong Chrome không cần thiết gây nên sự kiện ràng buộc ngay trước khi tải lại trang
Tại sao Chrome (14.0) gây nên các tài liệu sự kiện đã sẵn sàng và cửa sổ tải khi tôi làm mới trang? Lưu ý rằng tôi không nói về những gì sẽ xảy ra khi trang mới tải, nhưng trước khi tải xong. Xem mã sau:
<form name="form1" method="post" action="tmp.aspx?a=1" id="form1">
<script type="text/javascript">
$(document).ready(function() { console.log('document/ready' + new Date()); });
$(window).load(function() { console.log('window/load' + new Date()); });
</script>
<a href="tmp.aspx?a=1">tmp</a>
</form>
Khi tôi truy cập trang đầu tiên tôi nhận được hai kết quả đầu ra trên bảng điều khiển, một cho tài liệu/sẵn sàng và một cho cửa sổ/tải. Khi tôi làm mới trang, hai trang khác sẽ nhanh chóng xuất, và ngay sau đó hai trang nữa (từ trang xem mới). Nếu tôi thay vì chỉ cần nhấp vào liên kết (tmp.aspx) mà đi trực tiếp trở lại cùng một trang, điều này không xảy ra.
Tôi chắc chắn có giải thích tốt cho việc này.
Trân trọng!
EDIT: Các cuộc gọi bổ sung tới $ (tài liệu) .ready() và $ (cửa sổ) .load() được thực hiện TRƯỚC KHI trang đó đã được làm mới. Vì vậy, khi tôi lần đầu tiên tải trang họ phương thức được gọi một lần, sau đó tôi nhấn làm mới và TRƯỚC KHI trang đã tải lại các phương thức được gọi lại. Sau đó, khi trang vừa được tải lại, các phương thức được gọi là THIRD.
là một khung nội tuyến? coz tôi nghĩ rằng tôi đã nhận thấy hành vi tương tự nhưng đối với các vật dụng như facebook của – Achshar
cũng chỉ để loại bỏ các biến bạn có thể thử điều này mà không cần jquery? có thể jquery là rối tung với nó .. thêm một người nghe sự kiện cho cơ thể trong javascript tinh khiết. Điều đó sẽ thu hẹp khu vực vấn đề. – Achshar
Tôi đang gặp vấn đề này - quá phiền toái. Tôi cũng thấy rằng các sự kiện băm thay đổi gây ra document.ready để bắn không cần thiết quá – asgeo1