在页面的domready事件中,我设置了一个事件监听器,用于在我的网站页面(离线时)设置后台同步事件的按钮,但即使服务工作者已加载已经在之前的页面访问中,这行代码永远不会解决承诺,它的状态保持"待定"下去。
navigator.serviceWorker.ready.then(function (sw) {
$('#elt').on('click', function () {
sw.sync.register('contact-form-submission');
因为我知道在表单完成之前不需要设置同步事件,所以我尝试将此代码包装在3秒的setTimeout()中,这很有效!我的问题是为什么会出现这种情况,我还没有找到其他任何人说明。在第一次加载页面时,.ready事件将无法使用。洞察力很高兴。