我对服务工作者的策略是,如果 url 匹配某种特定格式,那么只有服务工作者应该拦截它,否则浏览器应该像往常一样处理它,
对于所有情况,我都使用 evt.respondWith() 来拦截它并提供自定义响应,但是如果 url 不匹配任何格式我该怎么办
我有几个选项,所有选项都有效,但我不确定哪一个在逻辑上是正确的
1)什么都不做,意味着我有 if 条件来检查 fetch 方法中定义的每个格式,但如果它们不匹配我什么都不做,我没有任何“else”条件。在这种情况下,浏览器正在正常获取页面,但我不确定它是否正确,实际发生了什么,cookies 是否通过了?
2)在 else 方法中我fetch(event.request, { credentials: 'include' });
也可以使用,我不确定是否需要在此处包含凭证子句,根据我的理解,不是服务工作者,而是浏览器在此处处理请求,因此它会自动包含 cookie。如果我在这里错了,请纠正我。
3)event.respondWith(fetch(event.request, { credentials: 'include' }));
这也有效,我认为因为我使用的是 event.respondWith,所以我需要明确地包含凭证(我再次不确定)。但我怀疑我是否需要在event.respondWith
这里使用。我所知道的event.respondWith
是,只有当我们想为 fetch 事件提供自定义响应时,我们才使用它。因为我们希望这些请求按原样处理,我们需要在这里使用event.respondWith
吗?
我所有的困惑都来自我缺乏知识event.respondWith()
,有人可以解释一下,我应该什么时候使用它?