ServiceWorker 有什么方法可以识别 no-cors/opaque 的来源或来源FetchEvent.Request
?或者我们是否可以将识别信息/数据从 HTML 显式传递给ServiceWorker
可用于识别FetchEvents
? 的来源。我使用查询字符串参数破解了一个解决方案,但我正在寻找比这更原生或更优雅的东西:
HTML
<img id="img1" src="image.jpg?imgId=img1" />
<img id="img2" src="image.jpg?imgId=img2" />
服务工作者
self.addEventListener('fetch', event => {
const url = new URL(event.request.url);
if(url.pathname.endsWith('/image.jpg')) {
// get Element ID that initated the FetchEvent
const imgId = url.searchParams.get('imgId');
// Notify document that the fetch started
clients.get(event.clientId)
.then(client => client.postMessage({imgId}));
}
})