在 ServiceWorker 中识别请求的页面来源

Identify request's page origin in ServiceWorker

ServiceWorkeronfetch 处理程序中,我希望能够识别 Request 来自哪个页面。例如,如果我有 2 个页面都请求 /resource.js,并且这个请求被传递给 service worker(onfetch 处理程序用 FetchEvent 调用),我如何判断是否它是一个页面请求 /resource.js 两次的实例,或者 2 个不同页面请求 /resource.js?

这可能吗?

您或许可以使用 event.request.referrer 来识别发出请求的页面。 参见:https://developer.mozilla.org/en-US/docs/Web/API/Request/referrer

目前不可能。最初的发布者似乎已经在 https://github.com/slightlyoff/ServiceWorker/issues/723 上找到并发表了评论,但为了记录在案,这就是目前正在 service worker 规范中讨论的地方。

一旦就规范达成一致,您应该期待支持服务工作者的浏览器随着时间的推移添加功能。