作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在ServiceWorker JavaScript代码本身(不是页面代码)中,我想知道我自己的URL。或者至少是自己的主机。
我需要这个,因为我希望对来 self 自己的服务器的资源和来自其他服务器的资源有不同的缓存行为。
换句话说:event.request.url
始终是带有主机和路径的 URL(例如 https://example.com/index.html
)。我需要知道这个 URL 是否与 ServiceWorker 本身来自同一主机。
最佳答案
在服务工作线程执行上下文中,self
设置为 ServiceWorkerGlobalScope
,继承自 WorkerGlobalScope
。有一个location
property在 WorkerGlobalScope
上,可以为您提供所需的信息。
您可以通过以下辅助方法将其付诸实践来解决您的问题:
function isSameOrigin(urlString) {
const urlOrigin = (new URL(urlString)).origin;
return urlOrigin === self.location.origin;
}
关于javascript - 如何在 ServiceWorker 中获取自己的 URL 或主机名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60451302/
我是一名优秀的程序员,十分优秀!