【发布时间】:2013-10-01 06:41:10
【问题描述】:
我需要启用缓存并禁止用户在退出后返回后查看信息。
我知道,在注销 + 后退按钮时显示的缓存页面是浏览器中的设计。我知道禁用缓存是一种强制注销+返回强制重新验证的方法。
使用 JSP(特别是 CQ5),这是否可能?
我有以下解决方案,但不确定哪种方法最适合我的需求:
- 到处禁用缓存。这可行,但不可接受,因为我们使用的发布商将忙于重新更新页面。
- “注销”按钮 POST 到页面 A。页面 A 终止会话并将用户转发到页面 B,并带有一些“您已注销”消息。来自页面 B 的“返回”将弹出浏览器提供的有关必须重新发布值的消息。是 = 他们注销(此时无害)并再次转发到页面 B。不 = 他们无害地坐在页面 A。但是,“返回”+“否”+“返回”可能会将它们放在缓存页面上,或者从历史记录中选择仍会显示缓存页面。
- “注销”按钮会弹出一个新窗口,询问他们是否确定/警告他们关闭会话。 “我确定”会执行 window.opener.reload() 或 window.opener.close()。但是,如果 JavaScript 被禁用,我们就完蛋了。
- “注销”发布到当前页面。所有页面都检查是否存在一些 POSTd 值。如果存在,请使用“您已注销消息”转发到页面 B。类似于#2。这实际上会将页面重新缓存到“您已注销”页面,但“返回”或历史记录仍将有缓存页面。
有没有办法手动清除用户的缓存,或者强制验证检查甚至在缓存页面上进行?我在这里没有想法......
【问题讨论】:
-
只有大约 2% 的用户禁用 JavaScript。您的任何用户都这样做吗?
-
我们可以假设每个人都打开了 JS 并且只是优雅地降级,也许是一条消息说“关闭你的浏览器”,但如果我们采用这种方法,那么其他一个 + 一条消息说要关闭无论如何,您的浏览器似乎更好。
-
你想如何禁用缓存?你的意思是在浏览器中禁用它?
标签: java jsp caching logout aem