【问题标题】:Handle 503 response in the client在客户端处理 503 响应
【发布时间】:2020-11-26 19:03:38
【问题描述】:

我正在使用一些公共 api,有时我会从这个 api 503 响应中得到 - 我理解这是因为服务器暂时无法处理请求(过载)。

我想知道在客户端(React)中处理这种情况的最佳实践是什么,因为我知道如果我再次发送请求,我将获得有效数据。

  • 我是否需要在超时后继续发送请求?或者我需要抛出并告诉用户再次加载? 任何帮助都是完美的

【问题讨论】:

    标签: reactjs web client http-status-code-503


    【解决方案1】:

    在“如果我再次发送请求,我将获得有效数据”的情况下。我建议您在超时后再次发送请求。

    如您所知,如果您再次发送请求,您将获得有效数据,那么这比要求用户再次重新加载页面更有意义。

    当请求获取数据时,您可以向用户显示加载。

    【讨论】:

      【解决方案2】:

      在我看来,您必须让用户知道这种情况作为警告,并在后台尝试每 5 或 10 秒(您的选择)获取数据。

      在后端,您可以查看此方法的“断路器”。

      如果您正在开发移动应用程序或 PWA(如果您有本地托管数据),则可以在本地存储中管理您的更改,并在建立连接时将本地数据与您的 api 同步(如果您的后端提供此功能)。

      【讨论】:

        【解决方案3】:

        案件的处理方式有多种,通常取决于项目需求来决定。 所以是的,一种处理它的方法是重复请求。有几件事需要考虑:您不想向已经有问题的服务发送垃圾邮件请求,因此您可能希望限制重试次数并使用指数函数(每次下一次重试等待更长的时间)。如果您使用 axois,您可以尝试axios-retry,或者在 fetch 周围实现一些包装器并不难。 也可以将此决定委托给用户 - 即显示一些错误并重试按钮。

        【讨论】:

          猜你喜欢
          • 2020-12-16
          • 1970-01-01
          • 2018-07-21
          • 2015-11-24
          • 2017-08-27
          • 1970-01-01
          • 2021-12-08
          • 2020-10-05
          • 1970-01-01
          相关资源
          最近更新 更多