我目前正在构建一个用于工厂/仓库类型场所的内部Web应用程序。用户将在多人共用一台PC的情况下使用该应用程序,因此我们需要设置一个相当短的会话超时时间,以防止其他人在上一个用户离开登录状态的情况下来到该PC并以上一个用户的用户名进行操作。
这样做的问题是,如果用户正在填写表单并且花费了很长时间,那么会话可能会超时。
您如何以用户友好的方式处理这个问题?
我目前正在构建一个用于工厂/仓库类型场所的内部Web应用程序。用户将在多人共用一台PC的情况下使用该应用程序,因此我们需要设置一个相当短的会话超时时间,以防止其他人在上一个用户离开登录状态的情况下来到该PC并以上一个用户的用户名进行操作。
这样做的问题是,如果用户正在填写表单并且花费了很长时间,那么会话可能会超时。
您如何以用户友好的方式处理这个问题?
需要让服务器知道用户正在输入信息。例如,如果用户按下TAB键或鼠标单击字段,请向服务器发送消息。最终的解决方案由您决定。
最好的建议可能是要求用户在完成后关闭浏览器窗口。使用会话Cookie,当浏览器关闭或在30分钟超时时(可以更改),会话将自动结束。
由于默认情况下,一旦页面加载完成,浏览器和服务器之间就没有交互,因此您需要在表单页面上使用JavaScript在后台联系服务器以刷新会话,但对于这样一个小问题来说,这似乎有点麻烦。
你考虑过将表单分成更小的部分吗?
监控超时并弹出弹窗通知用户当前会话即将过期,并显示“确定”或“取消”按钮。点击“确定”可以保持会话(即重置计时器为另外5分钟或10分钟-根据需要);点击“取消”则允许会话继续倒计时至零,从而结束。
这只是处理此问题的众多方法之一。
使用JavaScript“线程”来保持会话开放,对我来说是个坏主意。
这违背了会话超时的理念,该功能存在的目的是释放一些资源,如果没有用户在应用程序前面使用。
我认为你应该根据更准确的时间调整会话超时时间,以便在“典型正常使用”的情况下填写表单。
你还可以积极地:
我认为这是最好的选择,因为它可以避免用户为无用的填写复杂的表单,还可以处理用户离开的情况。