2010-09-13 38 views
6

Trong trang web của tôi, tôi có hai trang gọi là First.aspx và second.aspx.Không sử dụng javascript: history.back(); có bất kỳ vấn đề không rõ?

Từ first.aspx Tôi đang chuyển hướng người dùng đến second.aspx nhấp vào liên kết.

Trong trang second.aspx, tôi đang sử dụng javascript: history.back() khi nhấp vào nút hủy đầu vào (không phải nút asp). Điều này được thực hiện để tránh tải lại trang cuối cùng khi người dùng chưa thực hiện bất kỳ điều gì trên trang này và nhấp vào hủy để quay lại trang trước đó.

Tôi tự hỏi liệu có bất kỳ sự cố bảo mật nào hay bất kỳ vấn đề nào khác liên quan đến việc sử dụng history.back() này không? Nếu vậy, chúng là loại vấn đề gì?

Thay vì điều này, tôi nên sử dụng nút asp và chuyển hướng trở lại trang đầu tiên bằng cách sử dụng response.redirect()? Cách tiếp cận nào tốt hơn?

Trả lời

5

Tôi khuyên bạn nên tránh history.back() ngoại trừ một số trang sử dụng hiếm hoi mà bạn không thể làm khác.

Lý do tránh. Lý do đầu tiên là trường hợp người dùng mở một trang mới hoặc lưu trang này (và mở trang này sau) và không còn trang nào trước đó. Với cách đó anh ta không thể đi đến "hủy bỏ trang".

Ngoài ra có trường hợp một số khác từ trang khác chuyển hướng anh ta đến trang của bạn (có thể đây là vấn đề bảo mật?) Trường hợp này cũng hủy bỏ đưa anh ấy trở lại trang trước ... Một số trang tìm kiếm mở trang trong khung để chỉ hiển thị ảnh từ trang của bạn, đây cũng là trường hợp .back có thể không hoạt động bình thường.

Lý do thứ hai, việc quay lại không hoạt động chính xác khi bạn có cuộc gọi/cập nhật ajax và phải được xử lý theo cách khác.

Lý do thứ ba là bộ nhớ cache của trang không phụ thuộc vào việc quay lại hoặc từ chuyển hướng. Trên cả hai trường hợp, trang có thể được tải lại hay không, điều này phụ thuộc vào những gì bạn đã đặt trên tiêu đề của trang và cách trình duyệt xử lý nó.

Và cũng có trường hợp người dùng không có javascript (hoặc vô hiệu hóa) hoặc sản phẩm javascript bị lỗi và không hoạt động vì bất kỳ lý do ngẫu nhiên nào.

Và một điều nữa cũng rất quan trọng. Nếu bạn đã đăng bài trở lại trên trang trước, sau đó quay trở lại, được tạo lại đăng lại! Bạn cần phải chuyển hướng anh ta đến trang trước.

Hy vọng trợ giúp này.

Các vấn đề liên quan