Service Worker是一项比较新的Web技术,是Chromium团队在吸收了ChromePackaged App的Event Page机制,同时吸取了HTML5 AppCache标准失败的教训之后,提出一套新的W3C规范,旨在提高WebApp的离线缓存能力,缩小WebApp与NativeApp之间差距。
1、Service Worker线程运行的是js,有着独立的js环境,不能直接操作DOM树,但可以通过postMessage与其服务的前端页面通信。
2、Service Worker服务的不是单个页面,它服务的是当前网络path下所有的页面,只要当前path 的Service Worker被安装,用户访问当前path下的任意页面均会启动该Service Worker。当一段时间没有事件过来,浏览器会自动停止Service Worker来节约资源,所以Service Worker线程中不能保存需要持久化的信息。
3、Service Worker安装是在后台悄悄执行,更新也是如此。每次新唤起Service Worker线程,它都会去检查Service Worker脚本是否有更新,如有一个字节的变化,它都会新起一个Service Worker线程类似于安装一样去安装新的Service Worker脚本,当旧的Service Worker所服务的页面都关闭后,新的Service Worker便会生效
https://caniuse.com/#search=service%20worker
https://developer.microsoft.com/en-us/microsoft-edge/platform/status/?q=category%3Aofflinestorage
https://webkit.org/status
https://x5.tencent.com/tbs/index.html
x5.tencent.com
资讯特点:
1、由两个页面构成,一个首页,一个详情页,且通过url传参给到后端,获取数据渲染页面。
2、静态资源方面,有一部分js来自第三方,如aladdin
3、接口会排除缓存之外,返回。目前资讯采取,缓存项目的静态资源,第三方js排除,接口排除
If you can't measure it, you can't improve it
如果问题无法度量,也就无从改进
—— Lord Kelvin
https://fjut.github.io/interest-group/PWA_AMP_MIP/docs/fjut.github.io_2017-06-06_23-52-57.report.html
https://fjut.github.io/interest-group/PWA_AMP_MIP/docs/fjut.github.io_2017-06-06_23-53-47.report
MIP是Mobile Instant Pages的简称,也就是移动网页加速器,是一套应用于移动网页的开放性技术标准,使用 MIP无需等待加载,页面内容将以更友好的方式瞬时到达用户。其核心价值是提升了移动端渲染能力。
http://zhanzhang.baidu.com/college/courseinfo?id=912&page=1
https://www.mipengine.org/doc/03-principle-of-mip.html