无论是否有互联网连接,服务人员都会立即同步

时间:2017-01-22 00:03:58

标签: service-worker

我在服务工作者中有这个用于同步的监听器:

self.addEventListener('sync', function(event) {
    if (event.tag === 'button-click') {
        console.log('SYNC for button-click triggered!');
        console.log(event);
        event.waitUntil(
            fetch('https://localhost/')
                .then(function(response) {
                    return response;
                })
                .then(function(html) {
                    console.log('Fetching successful');
                    console.log(html);
                })
                .catch(function(err) {
                    console.log('Fetching failed');
                    console.log(err);
                })

        );
    }
});

所以当我点击按钮时 - console.logs和fetch工作正常。

问题是当我关闭连接并单击按钮时 - console.logs和fetch会立即被触发again。 他们不应该等待页面再次连接并then执行console.logs和fetch吗?

1 个答案:

答案 0 :(得分:0)

巨型跛脚问题:D

我使用offline中的Chrome复选框...似乎是NOT WORKING

所以,当我开始断开连接并将整个笔记本电脑重新连接到wifi时,我就得到了正确的行为。

结论:Always doubt the browser!!!