保存数据时阻止访问应用程序的最佳做法?

时间:2014-07-30 13:28:33

标签: java user-interface progress

当用户输入的数据保存到服务器时,阻止访问应用程序的好方法是什么?

我目前有一个客户端应用程序,它检索并保存从服务器使用的所有数据。当从/向服务器检索/保存数据时,我在活动窗口的状态栏中显示进度条,并通过在窗口上绘制透明的灰色矩形来阻止对活动窗口的访问。通过这种方式,用户知道正在发生的事情。

但是因为检索和保存数据比通常的webapp快,速度快,我想知道是否应该在窗口上绘制一个灰色矩形,因为在使用程序时它会让人分心。此外,我们通常不会在提交数据时阻止整个Web应用程序。

我可以指望用户足够智能,在检索/保存数据时不会点击任何内容吗?或者是否有更好的方法来处理这样的问题?

1 个答案:

答案 0 :(得分:2)

取决于:如果用户在上传期间通过单击应用程序中的猿类来破坏数据,则必须阻止ui。换句话说:永远不要认为用户足够聪明。永远不要假设您的用户有关计算机/您的软件的知识。 (至少这就是我所做的)

如果对服务器的请求非常小,那么我只想设置一个小时。然后用户知道"我无法点击,因为该应用正在运行"。如果操作需要几秒钟才能完成> 1s我会显示一个进度条并禁用该窗口。

更好的解决方案是在后台线程中上传数据。这通常是一项更复杂的任务,因为您必须保护您的域模型免受线程问题的影响,或者只是复制整个事件并将其传递给后台线程。但这为用户提供了继续工作的选择。