1

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

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

  • 让用户失去他们的改变
  • 使用模态窗口询问他们是否确定自己做了正确的事情,
  • 在更改时即时保存各个字段,
  • 或者您是否有一些终极方法可以在数据即将丢失且无法挽回时自动保存数据?
4

3 回答 3

3

• 使用模态窗口询问他们是否确定自己做的事情是正确的,

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

于 2009-09-03T20:48:59.853 回答
1

我喜欢你的第三个选项:

  • 在更改时即时保存各个字段。

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

  1. 改进的用户体验 - 不会丢失更改的表单会给用户留下深刻印象。一旦他们被验证,他们就会“承诺” 。例如,他输入一个有效的电子邮件地址,它会立即保存,此外,他会为每个成功保存的字段提供某种反馈(例如,该字段旁边出现一个绿色勾号)。
  2. 不再有“哦,废话,我的浏览器崩溃了,我丢失了所有信息”的情况。

缺点:开发这样的解决方案涉及额外的工时,并且它最终可能不会像更简单的解决方案那样退化。也就是说,IMO 仍然值得。

于 2009-09-03T21:10:01.750 回答
0

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

于 2009-09-03T21:01:57.793 回答