我目前正在构建一个用于工厂/仓库类型位置的内部Web应用程序。用户将在几个人之间共享一台PC,因此我们需要有一个相当短的会话超时来阻止人们徘徊并离开应用程序登录,其他人可以来到PC并使用以前用户的用户名执行某些操作。
这个问题是当用户当前在表单中输入信息时,会话可能会超时,特别是如果他们需要很长时间。
你会如何以用户友好的方式处理这个问题?
我目前正在构建一个用于工厂/仓库类型位置的内部Web应用程序。用户将在几个人之间共享一台PC,因此我们需要有一个相当短的会话超时来阻止人们徘徊并离开应用程序登录,其他人可以来到PC并使用以前用户的用户名执行某些操作。
这个问题是当用户当前在表单中输入信息时,会话可能会超时,特别是如果他们需要很长时间。
你会如何以用户友好的方式处理这个问题?
让服务器随时了解用户正在积极输入信息的事实。 例如,如果用户按下TAB键或在字段上用鼠标单击,则向服务器发送消息。 最终解决方案取决于您。
让服务器随时了解用户正在积极输入信息的事实。 例如,如果用户按下TAB键或在字段上用鼠标单击,则向服务器发送消息。 最终解决方案取决于您。
使用AJAX定期存储部分填写表单的内容,以便在系统启动时不会丢失工作。哎呀,一旦你这样做,使用AJAX来保持他们的会话超时,如果他们花时间打字。
最好的建议可能是要求用户在完成后关闭浏览器窗口。通过使用会话cookie,会话将在浏览器关闭时自动结束,或者在30分钟超时(可以更改为afaik)时自动结束。
因为默认情况下,一旦加载页面,浏览器和服务器之间就没有交互,你必须在窗体页面的后台有一个javascript联系服务器来刷新会话,但是看起来有点太麻烦了。这么小的问题。
如果会话超时太短以至于用户没有时间填写表单,我会放置一个AJAX脚本,每隔几分钟向服务器发出一次http请求,以使会话保持活动状态。我只会在用户必须填写某些内容或已经开始填充内容的页面上执行此操作。
另一种解决方案是使用会话超时提醒脚本,弹出对话框以提醒用户会话即将超时。弹出窗口应显示“注销”和“继续使用应用程序”,它会发出ajax请求以更新会话超时。
也许在这种情况下,保持活跃的javascript过程可能会有所帮助。如果脚本捕获了一些关键触发器,它会向服务器发送“我仍在键入”消息以使会话保持活动状态。
你考虑过把形式分成小块吗?
监视超时并发布弹出窗口以通知用户其当前会话将过期并显示“确定”或“取消”按钮。确保会话继续进行(即将计数器重置为另外5分钟或10分钟 - 无论您需要什么) - 或 - 取消以允许会话继续倒计时到零,从而结束。
这是处理它的很多方法之一。
对我来说,使用JavaScript“线程”来保持会话开放是一个坏主意。
这违反了会话超时的想法,如果应用程序前面没有用户,则会释放一些资源。
我认为您应该使用更准确的时间调整会话超时,以便在“典型的正常使用”中填写表单。
您也可以通过以下方式积极主动:
它认为这是最好的,因为它避免了用户填写复杂的表格,并在用户离开时处理这种情况。
作为技术解决方案的替代方案,您可以使您的应用程序以每次完成特定工作的方式进行,例如填写表单,您询问用户是否要继续从事另一项工作或是否已完成。 Yould可以有一个带有菜单选项的启动屏幕,如果用户选择了一个选项,他首先必须输入他的凭据。
或者在表单上输入密码字段。取决于他们有多少表格填写会话。
当用户发布表单并且他们的会话超时时,您应确保将表单值保存在某处,然后要求用户再次登录。一旦他们重新验证了您,他们就可以重新提交表单(因为他们的数据都不会丢失)。