![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
javascript
文章平均质量分 81
迷途老书僮
这个作者很懒,什么都没留下…
展开
-
如何手写一个Generator函数
我们也许用的多async,也许知道async原理是基于generator语法糖封装的,那你知道如何手写一个类Generator函数吗,废话不说直接上代码const context={ prevalue:0, nextvalue:0, done:false, stop: function stop () { this.done = true }}function gen(context){ while(true){ switch(context.prevalue=原创 2020-12-01 15:58:49 · 381 阅读 · 0 评论 -
如何手写一个异步Promise函数
先定义几个状态const PENDING='PENDING', FULLFILLED="FULLFILLED", REJECTED="REJECTED";新建一个Promise,封装函数resolve和reject;在这里插入代码片let resolve=(value)=>{if(this.status=PENDING){this.status=FULLFILLED;this.value=value;this.successArr.forEach((fn)=原创 2020-12-01 15:47:14 · 436 阅读 · 0 评论 -
websocket之性能优化-防抖函数
在用户执行某种特定操作时(频率很高),我们没必要每次都监听这个函数,如淘宝搜索栏,百度搜索栏快速输入值检索过滤,可以定义多少ms后执行一次,减少http的请求频率function debounce(func, wait) { let timer; return function() { let context = this; // 注意 this 指向 let args = arguments; // arguments中存着e if原创 2020-12-01 15:20:28 · 804 阅读 · 0 评论 -
性能优化-节流函数
什么是节流函数?节流函数既是某个函数只能在某个时间段内只能执行一次,我们在开发中如果使用了类似scroll,onsize,mouse事件,都会非常频繁的监听这个函数,如果在这函数里面操纵dom,代价将是非常大的,笔者遇到的一个项目问题正是如此,通过websocket推送端,在scroll过程中发送即时消息给接收端,接收端在收到消息之后进行页面dom操作,因为用了一些页面大小位置监听元素,所以指示页面极度卡顿,后面想到稀释发送次数来缓解接收端的压力,也就是我今天讲的主角,节流函数...原创 2020-12-01 15:09:23 · 415 阅读 · 1 评论 -
javascript如何获取设备连接网络类型,切换提示给用户
js有个navigator对象,有兴趣可自行在浏览器打印,如下图具体方法如下getTypeNet() {let strCode = navigator.userAgent;let stringNet= strCode .match(/NetType/\w+/) ? strCode .match(/NetType/\w+/)[0] : ‘NetType/other’;var netwo...原创 2019-08-16 15:34:02 · 3217 阅读 · 0 评论