我需要啓用緩存並禁用用戶在註銷後返回信息。如何在JSP中註銷後防止用戶返回,但保留緩存?
我知道在註銷+後退按鈕時顯示的緩存頁面是在瀏覽器中設計的。我知道,禁用緩存是強制註銷+回來強制重新驗證的一種方式。
使用JSP(特別是CQ5),這甚至有可能嗎?
我心裏有以下解決方案,但我不知道這是我需要的最佳方法:
- 禁用緩存無處不在。這是有效的,但是不可接受,因爲我們正在使用的發佈商將會忙於重新配頁。
- 「註銷」按鈕發佈到頁面A.頁面A殺死會話並將用戶轉發到頁面B並顯示一些「您已註銷」的消息。頁面B的「返回」將彈出消息瀏覽器提供的關於不得不重新發布值的消息。是=他們退出(此時無害)並再次轉發到頁面B.否=他們坐在Page A無害。但是,「返回」+「否」+「返回」可能會將它們置於緩存頁面上,或者歷史記錄中的選擇仍然會顯示緩存頁面。
- 「註銷」按鈕會彈出一個新窗口,詢問他們是否確定/警告他們關閉會話。 「我確定」做了一個window.opener.reload()或window.opener.close()。但是,如果JavaScript被禁用,我們註定要失敗。
- 「註銷」發佈到當前頁面。所有頁面都檢查一些POSTd值的存在。如果存在,轉到頁面B並顯示「您已被註銷的消息」。與#2類似。這實際上會將頁面重新緩存到「您已註銷」頁面,但「返回」或歷史記錄仍然會有緩存頁面。
是否有某種方法可以手動清除用戶的緩存,或者強制甚至在緩存頁面上進行驗證檢查?我在這裏沒有想法...
只有約2%的用戶禁用了JavaScript。你的用戶是否這樣做? –
我們可以假設每個人都有JS,並且可以優雅地退化,也許會有一條消息說「關閉瀏覽器」,但如果我們採取這種方法,那麼其中一個+消息說關閉瀏覽器似乎更好。 – oooyaya
你想如何禁用緩存?你的意思是在瀏覽器中禁用它? – betatester07