我需要启用缓存并禁用用户在注销后返回信息。如何在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