小记一则强制更新 Service-Worker 的方法

众所周知现在 Service-Worker 几乎是项目标配,vue、react 的脚手架工具都有推荐使用 PWA,但对 Service-Worker 管理不善或一旦你的静态资源文件出现问题,会对于线上业务造成毁灭打击。我们最新的一个项目中使用了蚂蚁金服家的 Ant-Desgin-Pro 开箱即用中台系统,自带 PWA ,所以这里针对的是如果你的线上环境已经存在 Service-Worker,在尽可能减少影响用户体验的情况下卸载。 注意 直接更改你的 Service-Worker 里的方法是不起作用的,因为你还需要 Service-Worker 能够工作,以保证版本兼容性和卸载也能够正常工作。 * 先直接上菜 在你的程序入口文件(如果你是 SPA 应用)或者其他可以在任何函数执行前的地方加上 navigator.serviceWorker.getRegistrations().then(function (registrations) { for (let registration of registrations) { registration.unregister…

JavaScript设计模式(下篇)

迭代器模式 迭代器模式意在,js 中遍历方法众多,foreach、for、for...of 等等针对的是不一样的数据格式,而迭代器模式的思想就是聚合这些遍历方法,我不需要知道我现在的数据是个什么样的格式,只要知道是要遍历的就可以了。 JavaScript 共有四种数据集合:数组 Array、对象 Object、Map、Set。后两个是 ES6 添加的 /* 假设遍历以下dom <p>1</p> <p>2</p> <p>3</p> <p>4<…

JavaScript设计模式(上篇)

JavaScript 设计模式 * 解析 ES6 所需要的几个 babel 插件 npm install babel-core babel-loader babel-polyfill babel-preset-es2015 面向对象三要素 继承 class Person{ constructor(name,age){ this.name = name this.age = age } eat(){ console.log(`${this.name} eat something`) } speak(){ console.log(`My name is ${this.name}, age ${this.age}`) } } //继承 class Student extends Person{ constructor(…