与未保存形式数据时处理用户关闭浏览器(Dealing with unsaved form data

2019-10-17 11:53发布

我有困难时期试图找出如何在浏览器被关闭或用户更改页面时的形式自动保存用户数据 。 当你想打开一个对话框onbeforeunload事件是确定的,但那时为时已晚,以保存更改(除非你只是阻止在onBeforeUnload处理足够长的时间,浏览器为它传递请求到服务器...但我宁愿没有这样做)。

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

  • 让用户只是失去他们的变化
  • 要求他们用一个模式窗口 ,如果他们确信他们做了正确的事情,
  • 保存在飞行各个领域,因为他们改变,
  • 或者你有一些终极方法, 自动保存数据时,它即将被永久丢失?

Answer 1:

我喜欢你的第三个选择:

  • 保存单个领域的飞行,因为他们改变。

我在处理类似的情况,而这正是我们正在做的。 出售这对我的两个主要方面:

  1. 改进的用户体验 - 用户将不会丢失变化的形式留下深刻的印象。 它们是“承诺” 一旦被验证 。 例如,他在各类有效的电子邮件地址,它会立即保存,此外,他还提供了某种对于成功保存每个字段的反馈(一个绿色的勾例如,后面会出现一个字段)。
  2. 没有更多的“ 噢,废话我的浏览器崩溃了,我失去了所有我的信息 ”的情况。

缺点:额外的工时参与开发这样的解决方案,而且它最终没有很好地降解为简单的解决方案的可能。 这就是说,它仍然是值得的海事组织。



Answer 2:

•问他们用一个模式窗口,如果他们确信他们做了正确的事情,

关闭窗口是取消的行为。 当用户从不主动提交表单,世界上没有保证,他们希望保存的数据(也可能是不正确的),你保存数据可能会导致用户的问题。



Answer 3:

在我已经在使用它的任何浏览器,onBeforeUnload为您提供它要求用户确认他们是否要离开页面或并非模态窗口。 您可以添加自己的文字,警告他们有未保存的数据,帮助他们决定。 你不想明确地保存,而用户的请求,因为:a)用户没有试图保存,和b)如果你需要抛出任何验证错误将是太晚的页面已经在浏览的过程中远。



文章来源: Dealing with unsaved form data when user closes the browser