我有一个大型网页(经典ASP),需要用户提供大量信息,所以输入很多。用户的行为是他将在提交之前填写信息,分析信息和其他耗时的过程。问题在于,即使会话超时设置为合理的30分钟,我也常常抱怨在提交时,用户收到超时消息并丢失所有工作,所有这些都是他之前填写的。如果会话被放弃,我认为检查提交事件会很优雅,在这种情况下会出现登录表单。通过使用Ajax同步,会话检查和登录本身,网页的状态将保持不变,允许用户在会话恢复后继续提交。
但是,我一直在阅读有关同步的危险,以及建议如何尽可能避免。对我来说,这似乎是需要同步的情况之一,但我之前没有发现任何人这样做过。 我正在寻找关于这是否是一个良好的行动方案的建议,使用Ajax同步进行会话恢复。
谢谢。
答案 0 :(得分:0)
此处无需执行同步请求。您可以从提交处理程序中取消表单提交(return false
或event.preventDefault()
),启动异步XMLHttpRequest以进行检查,然后在AJAX响应处理程序中显示消息或重新启动表单提交({ {1}})视情况而定。
如果造成这些问题,我建议30分钟可能不是合理的会话超时。更长的超时,和/或使表单ping服务器以保持会话活动,对用户来说可能是一种更方便的方法。