self.addEventListener('sync', function(event) {
console.log('firing: sync');
if (event.tag == 'image-fetch') {
console.log('sync event fired');
event.waitUntil(fetchurl());
}
});
function fetchurl()
{
console.log('firing: doSomeStuff()');
/* fetch dynamic url */
fetch('https://localhost/Service-Workers-BackgroundSync/server.php')
.then(function(response) {
return response;
})
.then(function(text) {
console.log('Request successful', text);
})
.catch(function(error) {
console.log('Request failed', error);
});
}
如何在service-worker.js中获取动态网址?
我正在调用'sync'事件。我想要动态传递获取URL ...总是点击提交按钮我得到不同的URL,然后我想通过'sync'事件在获取方法中传递动态URL。
请指导我。
答案 0 :(得分:1)
您可以使用IndexedDB或localforage等包装器在客户端和服务工作者之间共享信息。因此,在您的服务工作者中,您可以通过这种方式读取数据:
importScripts('./lib/localforage.js');
function fetchurl()
{
console.log('firing: doSomeStuff()');
/* get dynamic url from IndexedDB using localForage */
localforage.getItem('dynamicUrl')
.then(function (url) {
fetch(url)
.then(function(response) {
return response;
})
.then(function(text) {
console.log('Request successful', text);
})
.catch(function(error) {
console.log('Request failed', error);
});
}
}