phymooc / learn-javascript

0 stars 0 forks source link

Worker #3

Open phymo opened 2 years ago

phymo commented 2 years ago
``` js
// doWork2.js
self.addEventListener('message', function(e) {
  var data = e.data;
  switch (data.cmd) {
    case 'start':
      self.postMessage('WORKER STARTED: ' + data.msg);
      break;
    case 'stop':
      self.postMessage('WORKER STOPPED: ' + data.msg +
                       '. (buttons will no longer work)');
      self.close(); // Terminates the worker.
      break;
    default:
      self.postMessage('Unknown command: ' + data.msg);
  };
}, false);

messages passed between main pages and workers are copied, not shared. Structured cloning is great, but a copy can take hundreds of milliseconds. To combat the perf hit, you can use Transferable Objects.

phymo commented 2 years ago

Service Worker

https://developers.google.com/web/fundamentals/primers/service-workers?hl=zh-cn 一种提供详细的作为浏览器和网络或缓存间的代理的服务

应用

  1. 离线缓存
  2. 后台同步
  3. 推送通知

生命周期

image