首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在service-worker中每分钟向服务器发送一个请求?

如何在service-worker中每分钟向服务器发送一个请求?
EN

Stack Overflow用户
提问于 2020-01-06 16:26:13
回答 1查看 454关注 0票数 0

通过periodicSync尝试过,但不起作用:

TypeError: Cannot read property 'register' of undefined

这篇文档说periodicSync在任何地方都不受支持:

https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerRegistration/periodicSync

有可能实现这一点吗?

代码语言:javascript
复制
self.addEventListener('activate', event => {
   while (true) {
     //timer 1 min
     //POST query
}
});

那么,当重新打开浏览器的请求持续时,该怎么办呢?

EN

回答 1

Stack Overflow用户

发布于 2020-01-06 17:26:15

代码语言:javascript
复制
TypeError: Cannot read property 'register' of undefined

此错误与periodicSync无关,它与服务工作者的注册有关。

因此,跨浏览器的更系统的方法将使用fetch API https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API

去做这件事

代码语言:javascript
复制
 self.addEventListener('THE_EVENT_TO_BE_USED', event => {
    setInterval(function() {
        try {
            const url = 'https://randomuser.me/api';
            // The data we are going to send in our request
            let data = {
                name: 'Sara'
            }
            // The parameters we are gonna pass to the fetch function
            let fetchData = {
                method: 'POST',
                body: data,
                headers: new Headers()
            }
            const registration = await navigator.serviceWorker.ready;
            registration.backgroundFetch.fetch(url, fetchData).then(function(data) {
                // Handle response you get from the server
            }).catch(function(error) {
                // If there is any error you will catch them here
            });
        } catch (err) {
            console.error(err);
        }
    }, 60000);
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59608830

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档