如何在 Service Worker 中解析 URL
How to parse URLs in a Service Worker
我正在尝试编写一个 Service Worker 来缓存我的部分网页,但我需要每个请求的来源和路径才能决定如何处理它。不幸的是,Request 对象只有完整的 URL 作为字符串,我找不到任何方法来解析它。
URL 解析是一个复杂且容易出错的过程,因此我更愿意尽可能使用本机功能,但我能找到的唯一方法是在 [=16= 中解析 URLs ] 涉及滥用 DOM <a>
元素,这在 service worker 上下文中显然不是一个选项。我该怎么办?
您可以使用 URL
API。
它使您能够从字符串创建新的 URL 对象并使用组件:
var a = new URL('http://www.domain.com/asdf/?a=b#123');
console.log(a)
a.searchParams.forEach(function(val, key){
console.log(key + ' ' + val);
});
这是一个实验性的 API,但它在 Web Workers 中可用,所以应该不错。
我正在尝试编写一个 Service Worker 来缓存我的部分网页,但我需要每个请求的来源和路径才能决定如何处理它。不幸的是,Request 对象只有完整的 URL 作为字符串,我找不到任何方法来解析它。
URL 解析是一个复杂且容易出错的过程,因此我更愿意尽可能使用本机功能,但我能找到的唯一方法是在 [=16= 中解析 URLs ] 涉及滥用 DOM <a>
元素,这在 service worker 上下文中显然不是一个选项。我该怎么办?
您可以使用 URL
API。
它使您能够从字符串创建新的 URL 对象并使用组件:
var a = new URL('http://www.domain.com/asdf/?a=b#123');
console.log(a)
a.searchParams.forEach(function(val, key){
console.log(key + ' ' + val);
});
这是一个实验性的 API,但它在 Web Workers 中可用,所以应该不错。