如何在单个页面上处理多个异步错误?

时间:2009-12-14 14:06:43

标签: ajax exception-handling error-handling asynchronous

这不一定是特定于Flex的问题,但我会在我的示例中使用Flex:

场景:我们有一个相当复杂的MVC Flex应用程序,它使用远程处理并在单个页面上进行多次异步调用。一些电话是:

  • GetUserOrders
  • GetCurrentOrder
  • GetUserDetails

如果出现网络或数据库错误,则会向用户发送三条单独的错误消息,并且需要三次“确定”点击。我们正在考虑收集单个数组中的所有错误消息,并在常见错误消息框中显示为列表。

在单个页面上优雅地处理多个异步错误的最佳实践是什么 - 特别是当我们需要提醒用户存在错误时?

1 个答案:

答案 0 :(得分:0)

对于网络或数据库错误,您可能会考虑编写一些捕获这些错误的代码,只显示状态消息而不是一系列警报。

从用户的角度来看,如果网络或数据库遇到错误,他们会想知道什么时候可以再次开始点击。如果您希望这些错误仅在极少数情况下发生,则警报似乎没问题。但是,如果网络或数据库可能会停机一段时间,因此他们会收到很多这些消息,我会在某处发送状态消息,状态消息显示网络或数据库已关闭,直到它为止能够成功完成请求。我想你可以继续允许用户点击,甚至可能每隔几秒钟ping你的服务器,直到请求有效。一旦完成,您可以清除状态消息,一切都会正常继续。希望这是有道理的。

JavaScript代码段:

if (response.error) {
    if (response.error === 'some type') {
        showStatusMessage('Network/DB down');
        startPollingNetworkDBStatus();
    } else {
        // Additional error handling...
    }
}