利用Promise模拟任务队列,从而实现请求池效果

首先,我们需要理解什么是请求池。请求池 essentially 是一种机制,限制同时进行的请求数量,超过限制的请求会被放入一个队列中,等待之前的请求完成后再依次执行。这有助于控制资源的使用,避免因并发请求过多而导致的性能问题。 那么尝试写一下,现在假设我有一个函数,它返回一个promise,模拟网络请求,我想限制他同时进行的请求数量为3。那么我可以用一个数组来保存当前的promise,当数组长度达
利用Promise模拟任务队列,从而实现请求池效果

富文本编辑器的xss问题

前言:今天,客户要求加入富文本编辑器并且在非编辑模式下显示富文本的内容,在vue中需要用到v-html,但是突然联想到这样是很容易出现xss问题的,于是我们就要考虑如何防范 首先我们先要了解一下什么是XSS。XSS即跨网站指令码(Cross-site scripting,通常简称为:XSS)是一种网站应用的安全漏洞攻击,是代码注入的一种。它允许恶意使用者将代码注入到网页上,其他使用者在浏览网页时便
富文本编辑器的xss问题

js中如何优雅的替代 if-else

用 return 替代 if-else 场景:互斥的条件判断 修改前: function test(data) { let result = ''; if (data < 10) { result = 'if'; } else { result = 'else'; } return result; } 像上面的代码我们需要采用 if-else 
js中如何优雅的替代 if-else

【ES6】第四章-继承

1.call() call()可以调用函数 call()可以修改this指向,使用call()的时候,参数一是修改后的this指向,参数2,参数3,使用逗号隔开连接 function fn(x, y) { console.log(this); console.log(x + y); } var o = { name: 'andy' }; fn.call(o, 1, 2);//调用了函数此时的thi
【ES6】第四章-继承

【ES6】第三章-构造函数和原型

1.对象的三种创建方式 //1.字面量方式 var obj = {}; //2.new关键字 var obj = new Object(); //3.构造函数方式 function Person(name,age){ this.name = name; this.age = age; } var obj = new Person('zs',12); 2.静态成员和实例成员 2.1 实例成员 实例成
【ES6】第三章-构造函数和原型

【ES6】第二章-对象与类

1.对象 对象是由属性和方法组成的:是一个无序键值对的集合,指的是一个具体的事物 属性:事物的特征,在对象中用属性来表示(常用名词) 方法:事物的行为,在对象中用方法来表示(常用动词) //创建对象的方式 //字面量创建对象 var lmy = { name: '赖美云', age: 22 } console.log(lmy); //构造函数创建对象 function Star(name, age
【ES6】第二章-对象与类

【ES6】第一章-面向过程与面向对象

1.面向过程 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步的实现,使用的时候再一个一个的依次调用就可以了 2.面向对象 面向对象是把事务分解成一个个对象,然后由对象之间分工合作完成。 3.面向对象与面向过程的对比 面向过程 面向对象 优点 性能比面对对象高,适合跟硬件联系很紧密的东西 ,例如单片机 易维护,易复用,易扩展,由于面向对象有封装、继承、多态性的特征, 可以设计出
【ES6】第一章-面向过程与面向对象