我正在使用一些公共api,有时会从此api 503响应中获得-我理解是因为服务器暂时无法处理请求(超载)。
我想知道在客户端(响应)中处理这种情况的最佳实践是什么,因为我知道如果再次发送请求,我将获得有效数据。
答案 0 :(得分:0)
在“如果我再次发送请求,我将获得有效数据”的情况。我建议您在超时后再次发送请求。
如您所知,如果再次发送请求,您将获得有效数据,这比让用户再次重新加载页面更有意义。
在请求获取数据时,您可以向用户显示加载情况。
答案 1 :(得分:0)
我认为您必须让用户知道该情况作为警告,并在后台尝试每5或10秒(您的选择)获取数据。
在后端,您可以检查这种方法的“断路器”。
如果您正在开发移动应用程序或PWA(如果具有本地托管数据),则可以在本地存储中管理更改,并在建立连接后将其与api同步(如果后端提供了此功能)。
答案 2 :(得分:0)
有多种处理方式,通常取决于项目要求来决定。 因此,可以的一种处理重复请求的方法。几乎没有什么要考虑的:您不想发送垃圾邮件请求来解决已经遇到的麻烦,因此您可能希望限制重试次数并使用指数函数(每个下一次重试要等待更长的时间)。如果您使用axois,则可以尝试axios-retry,否则在fetch周围实现一些包装并不难。 也可以将此决定委托给用户-即显示一些错误并重试按钮。