angular service-worker: configure response status codes to treat as failed/offline with freshness strategy

y1aodyip  于 5个月前  发布在  Angular
关注(0)|答案(7)|浏览(67)

哪个@angular/*包是bug的来源?

service-worker

这是个回归吗?

描述

预期行为:新鲜度策略应该只有在请求成功时才返回给用户获取请求的数据。如果请求不成功(有500、504和其他代码),它应该返回缓存的结果,而不是错误的结果。错误的结果不应该被缓存。
但在现实中:
新鲜度策略为用户返回了错误的结果。
有趣的是,新鲜度策略在网络服务器完全崩溃(网络错误:连接被拒绝)的情况下按预期工作。我的意思是,所有配置在dataGroup请求中的数据开始从缓存中返回,即使后端已经死亡,Web应用程序也能正常工作。这与特定的错误请求不同(如我上面所述)。
性能策略按预期工作(首先返回缓存的结果)

s4chpxco

s4chpxco1#

感谢报告此问题,@anton-marchenko 👍
关于缓存不良结果:
数据组只会缓存良好结果,除非我们谈论不透明响应。对于不透明响应,每个策略都有默认行为,但您也可以使用cacheOpaqueResponses选项为每个数据组配置它。
现在,关于返回缓存的“不良” (即非2XX)响应:
我明白你的观点。目前,fresheness策略只有在获取失败(即没有响应)时才会回退到缓存(例如,当没有互联网连接时)。然而,我可以理解你可能希望以同样的方式处理其他响应代码(如502或504)。
虽然这将是一个重大的破坏性变化,但也许我们可以将其作为可配置选项(即导致返回缓存结果的响应HTTP代码列表)。
老实说,我不认为这个功能会有太大的需求,但我会将其保留为功能请求,看看其他人的想法。

kupeojn6

kupeojn62#

这个功能请求现在已经成为我们的待办事项候选!在接下来的阶段,社区有60天的时间进行投票。如果请求获得超过20票的赞成,我们将把它移到我们的考虑列表中。
你可以在我们的文档中找到更多关于功能请求流程的详细信息。

ej83mcc0

ej83mcc03#

根据我的理解,文档中提到,投票者只需为主题帖子设置👍。这是正确的吗?

wixjitnu

wixjitnu4#

是的,没错,@anton-marchenko。

lh80um4z

lh80um4z5#

看起来我们有20多个赞。
你能把这个请求移到你的考虑列表里吗?

jq6vz3qz

jq6vz3qz6#

有趣的😃
有没有人有兴趣提交一个pull request?😁

lzfw57am

lzfw57am7#

@gkalpak 我可以处理这个问题吗?

相关问题