用户关闭浏览器时处理未保存的表单数据

时间:2009-09-03 20:44:56

标签: javascript ajax browser automation onbeforeunload

当浏览器关闭或用户更改页面时,我很难弄清楚如何在表单中自动保存用户数据。当你想打开一个对话框时, onBeforeUnload事件是正常的,但到那时保存更改为时已晚(除非你只是阻止浏览器在onBeforeUnload处理程序中)它足以让它将请求传递给服务器......但我宁愿不这样做。)

我相信你们中的一些人不得不处理未保存的表格问题。你是做什么?你:

  • 让用户失去他们的更改
  • 如果他们确定他们做了正确的事情,请使用模态窗口询问他们,
  • 保存单个字段动态,因为它们发生了变化,
  • 还是有一些终极方法可以自动保存数据,当数据即将丢失时无法挽回?

3 个答案:

答案 0 :(得分:3)

•如果他们确定他们做的是正确的话,请问他们使用模态窗口,

关闭窗口是取消行为。由于用户从未主动提交表单,因此无法保证他们希望保存数据(可能不正确),保存数据可能会给用户带来问题。

答案 1 :(得分:1)

我喜欢你的第三个选择:

  
      
  • 随时更改个别字段。
  •   

我不得不处理类似的情况,这就是我们正在做的事情。卖给我的两件主要事情:

  1. 改善了用户体验 - 用户 一个表格会给人留下深刻的印象 不会失去变化。他们是 “确认”一旦验证。 例如,他输入有效的电子邮件 地址,并立即保存, 而且他提供了某种形式 每个领域的反馈意见 成功保存(绿色 例如,勾选旁边出现 该领域)。
  2. 没有更多'哦,我的浏览器崩溃了 我丢失了所有信息'情况。
  3. 缺点:开发此类解决方案所需的额外工时,可能最终不会像简单解决方案那样降级。也就是说,它仍然值得IMO。

答案 2 :(得分:0)

在我使用过的任何浏览器中,onBeforeUnload为您提供了一个模态窗口,要求用户确认是否要离开页面。您可以添加自己的文本,警告他们有未保存的数据,以帮助他们做出决定。您不希望在没有用户请求的情况下显式保存,因为a)用户没有尝试保存,并且b)如果您需要抛出任何验证错误,那么由于页面已经处于导航过程中,因此为时已晚程。