ls
                                            ls
                                        
                                    When I use devtool, my websocket server will auto disconnect to client. if I use `node app.js`, it will be right.
[https://developer.mozilla.org/zh-CN/docs/Web/CSS/::backdrop](https://developer.mozilla.org/zh-CN/docs/Web/CSS/::backdrop) [整合鼠标、触摸 和触控笔事~件的Html5 Pointer Event Api](https://juejin.im/post/594e06f2f265da6c2f0a841d)
## 分析`_`的`.debounce`和`.throttle` DOM 上有些事件是会频繁触发的,比如`mouseover`、`scroll`、`resize`...。以前有个需求,是做一个图表,是用`canvas`画的,最初,如果图表画完,用户拖拽浏览器窗口,改变浏览器大小的话,图表并不会自适应的变化,所以就需要监听`resize`事件,每当窗口大小变化后,再重新绘制。但是`resize`是频繁触发的,这就导致了页面的明显的卡顿,因为每次`resize`后的回调要执行大量的计算。 当时比较急,遇到这个问题以后,直接就查了`.debounce`和`.throttle`,就直接用了`lodash`。现在回过头了,看下源码,看看它的实现。 ## Debounce #### 英文释义: > n. 防反跳 > 按键防反跳(Debounce)为什么要去抖动呢?机械按键在按下时,并非按下就接触的很好,尤其是有簧片的机械开关,会在接触的瞬间反复的开合多次,直到开关状态完全改变。 我们希望开关只捕获到那次最后的精准的状态切换。在 Javascript 中,那些 DOM 频繁触发的事件,我们想在某个时间点上去执行我们的回调,而不是每次事件每次触发,我们就执行该回调。有点啰嗦,再简单一点的说,我们希望多次触发的相同事件的触发合并为一次触发(其实还是触发了好多次,只是我们只关注那一次)。 所以,在 Javascript 中,我们就希望频繁事件的回调函数**在某段连续时间内,在事件触发后只执行一次**。 拿`resize`事件为例,在 2s 内的该事件会被触发多次(具体几次未知,不同浏览器并不一样)。我们需要对`resize`的回调函数做 Debounce 100ms 化,这样`resize`的回调会在 2.1s 后触发,之前...
JS货币格式化
在日常开发中遇到一个数字千分位格式化,所谓的数字千分位格式化,即从个位数起,每三位之间加一个逗号。例如“10,000” 通过google和自己的实践收集并整理了一下方法。 ``` js //1. function toThousands(num) { var result = [ ], counter = 0; num = (num || 0).toString().split(''); for (var i = num.length - 1; i >=...
```js (function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react')) : typeof define === 'function' && define.amd ? define(['exports', 'react'], factory) : (factory((global.Helloworld...
基础的 `Date()` 就不说了~ :) ## 如何获得某个月的天数? 不知道大家遇到过这个问题吗?我想如果你们写过日期组件一定有这个问题,我当时的解决方案是这样的: **以下的三个方法,month 参数我都根据 JS 本身对于 Date 的月份定义,采用0为1月** ### 最老实的办法 ``` javascript const EVERY_MONTH_DAYS = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31,...
原文:https://threejs.org/docs/index.html#manual/introduction/Animation-system ## 概述 在 three.js 的动画系统中,你可以为模型设置各种属性的动画,比如:[蒙皮和绑定模型的骨骼](https://threejs.org/docs/index.html#api/objects/SkinnedMesh),[顶点动画](https://threejs.org/docs/index.html#api/core/Geometry.morphTargets),不同的材质属性(颜色,不透明度,布尔值),可见性和形变。动画属性可以淡入、淡出、交叉渐变与变形。同一时间的不同动画对同一对象以及不同对象的权重和时间尺度可以独立修改,同一对象和不同对象上个各种动画可以同步变化。 为了实现同类系统中的所有动画功能,three.js 的动画系统已经在[2015年完全改变](https://github.com/mrdoob/three.js/issues/6881),现在它具有类似于 Unity / Unreal Engine 4 的结构体系。本章将简要概述改动画系统的主要组件以及它们如何协同工作。 ## Animation Clips 如果你已经成功导入了一个动画 3D 对象(不用关心它是骨骼动画还是顶点动画或者它们都是)。举个例子,你在 Blender 中使用 [Blender exporter](https://github.com/mrdoob/three.js/tree/master/utils/exporters/blender/addons/io_three) 将模型导出,并使用 [JSONLoader](https://threejs.org/docs/index.html#api/loaders/JSONLoader) 将它加载到 three.js 的场景中,加载完成的几何体网格对象会有一个名为 "animations"...
## Cache First & Fallback   ```js self.onfetch = (e) => { const cached = caches.match(e.request) const fallback = caches.match('offline.html') const fetched = fetch(`${e.request.url}?${Date.now()}`) e.respondWith( cached .then(res => res...
### 删除远程 Tag ``` git push origin --delete tag tagname ``` ### 删除本地 Tag ``` git tag -d tagname ```