PWA之Service Worker核心功能

最近在学习PWA,Service Worker又是重中之重,分享一下这几天的心得。

Service Worker是PWA的核心。PWA的概念靠Service Worker来实现。

我们可以把Service Worker看作是存在于 App,Network,Browser之间的代理人(Proxy Servers),或者说一个中间层。

Service Worker作为一个中间层的好处是,它从不“越权”。也就是说不存在DOM Access, 不越权管浏览器的事。运行在一个自己独有的线程,是完全async的,所以sync的XHR,像localStorage就不能在Service Worker里使用。

Service Worker的主要作用:

  1. 使离线app成为可能,页面关闭后还会一直运行。
  2. 可以对app的网络请求进行截取和调整。
  3. 根据当前网络状况在适时更新或缓存资源。
  4. 可以向客户推送消息,使用后台的api。