2

我开发了一个在抵押贷款公司内部使用的 Web 应用程序。我们一直遇到人们在与客户交谈时填写表格然后在点击保存之前点击离开屏幕的问题,从而丢失他们的数据(他们可以只点击返回,当然,但他们从未想过这一点)。

我们用户的第一个“解决方案”是要求我们在每次更改字段后自动保存数据。即使忽略明显的可扩展性问题,在我看来,这与地球上几乎所有其他 Web 应用程序的惯例完全背道而驰,其中您在提交表单时保存(总 Ajax 应用程序,如 GMail 不算,因为他们是一个完整的“另一种野兽”。我错了吗?或者(再次,忽略可扩展性)您认为这是一种合理的方法吗?

继续前进,我们的实际解决方案是弹出旧的“您确定要离开此页面浏览吗?” 当用户离开脏表单时的对话框。现在我们收到了有关对话结构方式的投诉。大多数应用程序都会说“您要保存更改吗”,因此点击“是”或“确定”是一个很好、安全的选择。但是对于导航离开对话框,点击 OK 是不安全的、不保存的选项。我们的用户当然不会阅读对话框,他们只是点击 OK,然后砰的一声,他们丢失了他们的更改。

我对更改此对话框犹豫不决,因为 (a) 该对话框是标准的,由浏览器生成,(b) 我什至不知道如何更改该对话框,以及 (c) 它已经存在数月了,人们(包括已经弄清楚的非白痴)将不得不重新学习他们的行为。

你认为这里最好的路线是什么?

4

5 回答 5

2

如何保存该客户端,例如在 cookie 中并提供一个按钮,该按钮将使用最后保存的值填充表单?

于 2009-02-27T17:23:08.417 回答
1

我会说使用 AJAX 自动保存表单 - 无论是在计时器上,还是在更改字段时。

您提到了该解决方案的可扩展性,但您还说它是一个内部应用程序,这让我认为在这种情况下可扩展性可能不会是那么大的问题。

于 2009-02-27T17:22:21.053 回答
1

为什么不看看 StackOverflow 在您开始回答问题但不提交然后尝试走开时所做的事情。我认为 UI 在这里完成的方式很好。

Are you sure you want to navigate away from this page?
You have started writing an answer.
Press OK to continue, or Cancel to stay on the current page.

如果您的用户不阅读对话框弹出窗口并且他们说好的,我可能会考虑再次询问。

Your valuable edits will be LOST. 
Are you sure you want to navigate away from this page without saving?
Press OK to continue, or Cancel to stay on the current page.

对于无法学习稍微新的工作方式的用户,恐怕我没有解决办法。

于 2009-02-27T17:25:12.780 回答
0

我会去保存任何元素的 onblur 或者如果整个表单被散焦(onblur)。您可以在卸载时弹出对话框以自动保存表单(甚至在显示对话框之前)。只需附加 onunload 事件即可保存它。

于 2009-02-27T17:26:05.430 回答
0

我对更改此对话框犹豫不决,因为 (a) 该对话框是标准的,由浏览器生成,(b) 我什至不知道如何更改对话框

(b) 事实上,你不能。

关于我能想到的缺少总 AJAX * 的唯一解决方法是使用 window.confirm() 进行 on[before]upload 提出自己的问题,如果按下 OK,则使用同步 XMLHttpRequest 推送数据以保存在从事件处理程序返回之前。

*:并不是说完全的 AJAX 是一个糟糕的方法,但要让整个应用程序以这种方式工作可能需要做很多工作。

于 2009-02-27T18:31:57.987 回答