技匠
技匠
https://www.jianshu.com/p/f200f6e2b041
webpack-workbox-plugin
> ### where is the file? 还没有加哦,todo 只是计划做的
### 弊端 1. `setInterval` 对自己调用的代码是否报错漠不关心。即使调用的代码报错了,它依然会持续的调用下去 2. `setInterval` 无视网络延迟。在使用 `ajax` 轮询服务器是否有新数据时,必定会有一些人会使用`setInterval`,然而无论网络状况如何,它都会去一遍又一遍的发送请求,如果网络状况不良,一个请求发出,还没有返回结果,它会坚持不懈的继续发送请求,最后导致的结果就是请求堆积。 3. `setInterval` 并不定时。如果它调用的代码执行的时间小于定时的时间,它会跳过调用,这就导致无法按照你需要的执行次数或无法得到你想要的结果。 4. `setInterval` 做动画时低频会有卡顿现象,尤其是在低端机型使用 ### 解决方案 1. 使用 `setTimeout` 代替 `setInterval`。 2. 可以给 `setTimeout` 设置时间后,在最后调用自身。如果希望“匀速”触发。可以计算代码执行时间,用希望的延迟减去上次执行的时间。 3. 可以使用 `requestAnimationFrame`...
1. setInterval 做动画时低频会有卡顿现象,尤其是在低端机型使用,可以使用 requestAnimationFrame 代替 > `window.requestAnimationFrame()` 告诉浏览器——你希望执行一个动画,并且要求浏览器在下次重绘之前调用指定的回调函数更新动画。该方法需要传入一个回调函数作为参数,该回调函数会在浏览器下一次重绘之前执行 MDN: https://developer.mozilla.org/zh-CN/docs/Web/API/Window/requestAnimationFrame
 1. 首先渲染引擎下载HTML,解析生成DOM Tree 2. 遇到css标签或JS脚本标签就新起线程去下载他们,并继续构建DOM。(其中css是异步下载同步执行)浏览器引擎通过 DOM Tree 和 CSS Rule Tree 构建 Rendering Tree 3. 通过 CSS Rule Tree 匹配 DOM Tree 进行定位坐标和大小,这个过程称为 Flow 或 Layout 。 4. 最终通过调用Native...
特性: 1. 函数嵌套函数 2. 函数内部可以引用外部的参数和变量 3. 参数和变量不会被垃圾回收机制回收 闭包的缺点就是常驻内存,会增大内存使用量,使用不当很容易造成内存泄露。 为什么要使用闭包: 为了设计私有方法和变量,避免全局变量污染 希望一个变量长期驻扎在内存中 view detail: https://segmentfault.com/a/1190000000652891
优化 tips 1. 逐步迁移现有接口 以下游微服务或数据库为单位进行逐步迁移 2. 使用新字段或者字段参数来升级接口 3. 使用DataLoader解决 N+1 DataLoader 收集单数据请求,交给批处理函数统一处理,减少数据库调用次数 4. 自动生成 Schema 使用自动生成脚本从数据库/下游服务(主要是rpc)自动生成 Schema 5. 自定义标量类型 处理非 JSON 类型接口和无法用Query描述的数据结构时,可以自定义标量类型,并实现串花函数。 6. 不适合使用的一些场景 - 前端需求简单,接口复用率低 - 功能迭代不活跃
权限管理,graphql 不做任何敏感数据的查询