San*_*osh 9 javascript java sessiontracking session-timeout
场景是用户应该在她的会话即将到期时收到通知(例如通过典型的JS警报或重定向等).可以做的几种方法是
这两种方法的相对优点/缺点是什么?除了这些,还有其他方法可以实现(一些标准库等).我的后端是Java EE(Struts + Spring).
通过使用javascript超时函数,您需要确保如果用户正在进行任何AJAX调用,则应重置您的函数,因为它应被视为用户活动.
如果使用服务器推送使用websockets,您可能无法针对不是最新浏览器的用户.您可能必须使用一些信令框架甚至更改后端堆栈.(我现在可以想到socket.io和SignalR)
这两种方法都不会优雅地降级.因此,IMO javascript选项听起来更好,因为它可以针对更广泛的受众,这将需要您解决一些边缘案例场景.如果我有一个选择,我根本不会实现这个功能.但这种情况很难发生.
更新: 这是我能想到的另一种方法.
每次页面被提供时,我都会发送一个Cookie,可以在客户端访问,其中包含会话超时的UTC时间.在我的代码中,我将放置一个setInterval,它将读取该值并将本地时间与UTC进行比较,如果它关闭,将显示一个弹出窗口,说明超时将在X秒内发生等.
这再次不会优雅地降级并依赖于客户机的时间.因此,如果错误,此功能将无法可靠地运行.
| 归档时间: |
|
| 查看次数: |
9489 次 |
| 最近记录: |