龙空技术网

JavaScript的故障恢复重试失败操作

行家汇 191

前言:

现时看官们对“表单提交失败请重试”都比较注意,咱们都想要剖析一些“表单提交失败请重试”的相关知识。那么小编在网上收集了一些对于“表单提交失败请重试””的相关资讯,希望同学们能喜欢,我们一起来了解一下吧!

如果组件在执行某项操作时失败了,可以重新尝试。这项操作甚至不一定要属于组件。但由于组件依赖于此项操作,因此只要操作失败,那么组件也会出错。例如,一个后端API请求可能会失败,因而导致发送请求的组件处于一个未知状态。API请求这种操作,适合在失败时进行重试。

不管我们重试的是一个API请求,还是涉及到其他组件的操作,都要保证这项操作是等幂的。意思是,在初次调用操作后,再次调操作不会有副作用。换句话说,就是多次成功调用操作不会对系统的其他部分产生负面影响。请求数据的操作(向API请求数据,同时不会改变后端资源的状态)适合在失败时被重新尝试。例如,如果获取数据的请求由于后端处理的时间太长而失败了(很可能是因为与其他用户争夺资源),我们可以再次尝试,并会快速获得结果。我们也许不愿继续等待,但可以进行安全的重试。下面的例子展示了一个模型,它会在请求失败时进行重试。

我们必须了解正在执行的操作类型和接收到的错误类型。例如,提交表单并创建资源的操作可能会出现很多种错误。如果在尝试执行此操作时,它返回了503错误码,就可以确定重试是安全的——因为后端资源没有被改动。另一方面,也可能接收到500错误码——在这种情况下,我们没办法知道在后端出现了什么错误。

对于获取数据的请求,无须操心它返回的是什么错误,因为我们不会改变任何东西的状态。因此,在重试操作之前,需要考虑操作的类型,如果这个操作会修改资源,那我们还需要考虑错误响应的类型。

标签: #表单提交失败请重试