保持服务工作文件运行以不断从IndexedDB获取数据

时间:2018-06-18 13:59:37

标签: javascript service-worker indexeddb web-worker localforage

我已经注册了一个成功运行文件worker.js的服务工作者。文件worker.js从Indexed Db(通过 localforage )获取数据,并将其写入名为movement的输入。现在,当用户与网站交互时,索引数据库会不断更新,并且我们需要在更新后立即获取这些值(如回调)。服务工作者第一次运行正常但我需要它继续运行并更新名为movement的输入。

service.js

navigator.serviceWorker.register('app/worker.js')
 .then(function (registration) {
    var serviceWorker;
    if (registration.installing) {
      serviceWorker = registration.installing;
    } else if (registration.waiting) {
      serviceWorker = registration.waiting;
    } else if (registration.active) {
      serviceWorker = registration.active;
    }

if (serviceWorker) {
  console.log("ServiceWorker phase:", serviceWorker.state);
  serviceWorker.addEventListener('statechange', function (e) {
  console.log("ServiceWorker phase:", e.target.state);
  });
}).catch(function (err) {
  console.log('ServiceWorker registration failed: ', err);
});

worker.js

localforage.getItem("vision").then(function (value) {
  $("input[name='csinput']").val(value);
});

我希望worker.js继续运行并从Indexed DB获取数据并将其发送到输入以更新它而不会妨碍页面性能。

0 个答案:

没有答案