Forms 保存表单数据的策略(在选项卡/浏览器关闭时)
我遇到了一个任务管理应用程序的问题,用户偶尔会关闭浏览器/选项卡,而他们键入的信息会消失,因为他们不小心关闭了浏览器/选项卡,导致他们输入的文本丢失(有些人可能会花半个小时输入文本) 因此,我必须提供一个解决方案,我有一些想法,但希望提供最好的解决方案,或者如果您有更好的解决方案,请让我听听您的意见 备选案文1:Forms 保存表单数据的策略(在选项卡/浏览器关闭时),forms,onbeforeunload,onunload,saving-data,Forms,Onbeforeunload,Onunload,Saving Data,我遇到了一个任务管理应用程序的问题,用户偶尔会关闭浏览器/选项卡,而他们键入的信息会消失,因为他们不小心关闭了浏览器/选项卡,导致他们输入的文本丢失(有些人可能会花半个小时输入文本) 因此,我必须提供一个解决方案,我有一些想法,但希望提供最好的解决方案,或者如果您有更好的解决方案,请让我听听您的意见 备选案文1: 在窗口.onunload或可能的窗口.onbeforeunload事件上,调用一个confirm()对话框,并首先测试任务日志记录区域中是否有任何文本且不是空的。如果不为空,请调用w
- 在
或可能的窗口.onunload
事件上,调用一个confirm()对话框,并首先测试任务日志记录区域中是否有任何文本且不是空的。如果不为空,请调用窗口.onbeforeunload
,询问用户是否希望在不保存日志的情况下关闭选项卡/窗口window.confirm()
- 在同一事件中,不要调用任何confirm(),而是将任务日志区域中的文本强制保存到cookie中。然后可能会提供一个按钮,尝试从同一页面上的cookie还原任何保存的任务信息,因此点击该按钮将使其解析cookie并检索信息李>
window.onbeforeunload = function(){
return "[SOME CUSTOM MESSAGE FROM THE APP]";
}
一旦用户保存,并且我们知道不需要向他们显示消息,我们将设置:
window.onbeforeunload = null;
这有点侵入性,但总比用户意外丢失数据要好。如果用户在提交他们正在做的事情之前愚蠢到导航离开,那么他们不应该介意侵入,询问他们是否打算做一些明显愚蠢的事情 另外,SO在导航时使用确认对话框,这里的大多数(部分)用户都非常聪明 这是最容易使用的,可能会帮助用户更多
如果有人写了一段很长的文字,然后关闭浏览器而不提交,他们可能会更乐意在那里对问题进行排序,而不是在第二天早上发现他们没有这样做……什么是“用户入侵”意思?你知道提醒和确认窗口是多么令人讨厌,然而,这可能是该规则的唯一例外?我不知道。如果他们做得“正确”,就不会有对话,对吗?如果他们打字,忘了存钱,就丢了他们的工作,这很糟糕,对吧?问他们是否要保留或忽略未保存的更改有什么错?我知道如何做,但我觉得这会严重阻塞服务器-我的意思是。。为几十个用户绑定一个keyup事件,并为每个用户每隔几秒钟发送一个ajax请求?您不必在keyup上执行此操作,只需在blur上执行即可。这至少意味着用户已经完成了他们在该特定字段中所做的工作,并且值得保存。对..可能“按类型”太多了。如果您每60秒、每5分钟等在计时器上执行一次,如果且仅当文本已更改时,这也可能适用于您的场景。