Tôi hiểu rằng hộp kiểm sẽ vẫn được chọn khi bạn quay lại trang qua nút quay lại. Các lớp được thêm vào bằng cách sử dụng addClass của jquery tuy nhiên thì không. Ai đó có thể giúp tôi hiểu khi nào đó sẽ tồn tại hay không khi quay lại qua nút quay lại? Ngoài ra, có cách nào để lưu giá trị của một biến để tôi có thể sử dụng các giá trị biến để tạo lại các đối tượng không tồn tại không?điều gì sẽ tồn tại khi quay lại qua nút quay lại?
Trả lời
Không có gì vẫn tồn tại - các lớp không tồn tại vì DOM được tạo lại, các biến JS không tồn tại vì mã được thực thi lại vv Đồng thời, việc triển khai trình duyệt dường như khá đồng ý để giữ cho người dùng nhập dữ liệu biểu mẫu để thuận tiện ngay cả khi hành vi này không phải là một phần của bất kỳ thông số kỹ thuật chính thức nào.
Nếu bạn yêu cầu một số dữ liệu tồn tại ở phía máy khách - rất có thể bạn đang làm điều gì đó sai về mặt kiến trúc. Tại sao bạn cố gắng ghi đè hành vi nút "quay lại" của trình duyệt để người dùng được đưa trở lại trạng thái tùy ý, thay vì truy cập URL trước đó và hiển thị lại trang? Nếu ứng dụng của bạn tương tác nặng và hành vi nút "quay lại" này là mong muốn, bạn có thể muốn quay lại để người dùng điều hướng giữa các trang độc lập có lợi cho việc tạo các yêu cầu AJAX và dựa vào một cái gì đó như html5 history api cho phép bạn thực thi bất kỳ mã tùy ý nào để đưa trang vào trạng thái mong muốn.
Bạn không đi vào đủ chi tiết về những gì bạn thực sự mong muốn được lưu trữ - có thể là một localStorage hoặc thay thế bánh sẽ thích hợp hơn
Cập nhật:
Tôi đã đặt cùng nhau a fiddle để kiểm tra xem dữ liệu biểu mẫu sẽ tồn tại như thế nào khi duyệt qua lịch sử và các trường bị ẩn là có sẵn để được xử lý bởi JS - vẫn không phải là một ý tưởng hay mặc dù imo
bạn đang nói rằng tôi có thể sử dụng dữ liệu biểu mẫu ẩn sau đó vì nó sẽ tồn tại? – user584583
@ user584583: Tôi đang nói dựa vào các trường nhập liệu có thể rất không nhất quán giữa các trình duyệt và không đáng tin cậy –
Nói rằng * không có gì * vẫn tồn tại một chút gây hiểu nhầm. Bạn đã chỉ ra một điều gì đó tồn tại: dữ liệu biểu mẫu do người dùng nhập. Hai điều nữa vẫn tồn tại là vị trí cuộn và đối với thiết bị di động, mức thu phóng. – Nick
Nó khá nhiều phụ thuộc vào thực tế để bạn xử lý hoặc không băm của url, tức là nếu bạn làm, bạn có thể tồn tại tất cả mọi thứ.
CHỈNH SỬA:
Bạn phải làm quen với khái niệm về Ứng dụng một trang (SPA).
Có thể nhờ khả năng thay đổi location hash property và quản lý lịch sử trình duyệt.
Để thực hiện đơn giản này có tấn của các thư viện như Sammy.js
Mỗi khi bạn có sử dụng làm một hành động mà bạn đẩy trạng thái mới và do đó bạn sẽ có thể để xử lý cấp bách của nút quay lại.
Để có được ý tưởng về cách nó trông như thế nào, kiểm tra sau jsfiddle
Trong đoạn mã bạn thấy thiết lập routes
:
Sammy(function() {
this.get('#:folder', function() { ... });
this.get('#:folder/:mailId', function() { ... });
})).run();
nào xác định băm, tức là www.mygreatwebsite.com/#inbox/#1
và cách ứng dụng của bạn sẽ xử lý nó.
Có nhiều điều khác đang diễn ra ở đây, vì vậy các liên kết của tôi chỉ là điểm bắt đầu để bạn khám phá.
bạn có thể làm rõ những gì bạn đã viết? băm? – user584583
@ user584583 kiểm tra câu trả lời cập nhật của tôi. – vittore
Bổ sung các câu trả lời ở trên, bạn có thể lưu trạng thái mẫu với ViewState.
ViewState cho phép ASP.NET để repopulate trường biểu mẫu trên mỗi postback đến server đảm bảo rằng một biểu mẫu không tự động xóa khi người dùng chạm vào nút gửi.
Trình duyệt hiện đại cố gắng tồn tại lâu hơn và nhiều hơn nữa. Firefox đã thử nghiệm cách đây vài năm với việc bảo toàn mọi thứ bao gồm cả thay đổi tên lớp, miễn là máy chủ chỉ ra rằng trang có thể lưu trong tiêu đề HTTP và trang web chưa đăng ký bất kỳ trình xử lý sự kiện onunload
nào. Firefox kích hoạt onpageshow
và onpagehide
khi người dùng nhấn lại.
https://developer.mozilla.org/en-US/docs/Using_Firefox_1.5_caching https://www.webkit.org/blog/516/webkit-page-cache-ii-the-unload-event/
- 1. Nút quay lại Actionbarsherlock không quay lại
- 2. Lịch sử trang - nút quay lại tồn tại?
- 3. Nút điều khiển điều hướng quay lại
- 4. Chặn nút quay lại
- 5. Nút quay lại Android không quay lại hoạt động trước
- 6. Nút quay lại Mobile Safari
- 7. Nút quay lại khi reloadOnSearch: false
- 8. Tải lại trang trên nút quay lại
- 9. Nút quay trở lại MainActivity
- 10. Ngăn chặn nút quay lại
- 11. Ghi đè nút quay lại Android
- 12. Nút Quay lại (Hành vi Trình duyệt)
- 13. Android DroidGap tắt nút quay lại
- 14. Nút quay lại tùy chỉnh trên thanh điều hướng
- 15. Trang làm mới nút quay lại
- 16. Trình duyệt nút quay lại GWT
- 17. ActionBarSherlock Thay đổi màu nút quay lại?
- 18. Hoạt ảnh nút quay lại tùy chỉnh
- 19. Nút quay lại của UINavigationController biến mất?
- 20. Nút quay lại CodeIgniter sau khi đăng xuất
- 21. bỏ qua iframe internet explorer 7 khi quay lại
- 22. Ajax + nút quay lại và tiến lên
- 23. Quay lại trong C#
- 24. Nút quay lại Android không khởi động lại hoạt động?
- 25. Khối Nút Quay lại trong android
- 26. ListView "quay lại" khi cuộn
- 27. Nút quay lại gửi lại dữ liệu biểu mẫu ($ _POST)
- 28. quay lại trang trước
- 29. Android - Mô phỏng Nút Quay lại
- 30. Nút quay lại trình duyệt sau khi đăng xuất
1 cho một câu hỏi nổi phrased, không tầm thường. Hãy cẩn thận để xây dựng trên các chi tiết cụ thể của kịch bản của bạn, hoặc nó chỉ là một vấn đề "nếu-"? –