2009-11-02 183 views
3

我应该执行什么命令验证&确认?先验证,稍后再确认?

含义,我是否首先要求用户确认保存或首先验证表单?

考虑两种情况,第一种 - 验证非常快,第二种 - 验证可能需要几秒钟。你会改变订单吗?

编辑:该按钮不作为“保存”,但执行“删除”,所以确认是必要的。

回答

4

先验证。如果您有错误循环,则会大量减少对话数量。

考虑保存,然后进行验证,以3轮错误:

保存确认 - >验证(失败),保存确认 - >验证(失败),保存确认 - >验证(失败) - >保存(通过)。

这是7个对话框。现在验证:

验证(失败) - >验证(失败) - >验证(失败) - >保存(通过)。

这是4个对话框。

尝试优化您的验证程序!也是保存一个危险的操作?你真的需要保存确认吗?你可以有一个历史机制(有点像SO),并完全消除保存对话框。

另一种选择是允许用户保存无效数据,根据您的解决方案,这些数据可能可行也可能不可行。

如果您担心通过保存无效数据来破坏您的数据库设计(有些人通过允许列可以为空(如果它们不应该是这样)来实现这一点),您可以始终将状态暂时保存到BLOB。

+0

验证或多或少被优化。我正在寻找最差的情况下2秒(当服务器忙于日常例程(DB备份等) 确认是必需的,它不是一个“保存”按钮,而是一个“删除”按钮。虽然 - 说服了我。 – Faruz 2009-11-02 11:12:05

1

如果可能,不要创建一个额外的步骤(“现在保存y/n”) - 提供撤消代替(“文档保存,现在验证。[链接]糟糕,我不想保存, /链接]”)。这样,当你在后台验证时,用户将有一种“不保存”的方式。

如果您无法保存无验证,请将用户提交的数据置于临时位置(显示“现在检查您的数据”),验证,如果它通过验证,则保存在后台,否则提醒用户。

+0

只有当表单无法验证时,我才能保存。所以我不能先执行保存然后验证。 – Faruz 2009-11-02 10:57:35

+0

只要您允许用户保存无效数据,就可以。 – RichardOD 2009-11-02 11:07:27

0

做,在这个顺序:

  • 快速验证
  • 确认保存
  • 慢验证

这样一来,你就不会浪费你的用户的时间和大多数问题将是在用户被要求点击某处之前发现。

+1

首先验证的问题如下:(考虑这种情况): 1.用户尝试保存。出错了。 2.用户修复错误,尝试保存,然后问“你想保存吗?” 3.用户按下“是”,并得到一个错误... 它变得混乱,不是? – Faruz 2009-11-02 10:59:53

3

我最近去了伦敦的StackOverflow DevDay,Joel Spolsky有一个非常好的谈话,说用户不喜欢被提示做出决定。他用这个例子说明你经常在软件中反复提示,以确认你确实想要做什么,你刚才问软件要做什么。

亚马逊(我认为)一键购买按钮就是一个例子,它最初需要多次点击才能购买产品 - 点击按钮,然后再点击一下确认购买。它最终成为一个真正的一键购买按钮,因为它们为大多数人优化。大多数点击按钮的人不希望被提示确认。对于那些犯了错误并想撤消的少数派来说,有一条路线可以让他们在之后取消。

所以问自己这个问题:我真的需要提示用户在保存前确认吗?如果他们点击一个保存按钮,那么他们已经选择了保存。

1

验证web应用程序总是有点不同。一般来说,你就会有这样的流动即刻使用JavaScript在客户端

  • 验证
  • 用户按下“保存”
  • 在服务器端进行更激烈的/复杂的验证和报到问题case

在您提到的具体示例(保存操作)中,我不会提示任何确认。我的意思是,这是一个保存操作,也应该有相应的删除操作。所以为了保存,在我的情况下不需要提示。如果用户在删除条目时无法返回,我会真正提示。