js
文章平均质量分 72
木木林_
这个作者很懒,什么都没留下…
展开
-
前端项目发布后,如何使正在使用的用户更新为最新的版本?
前端项目发布后如何使缓存用户的页面更新,项目发布后导致某些页面白屏?大概会这个原因原创 2023-02-01 18:34:23 · 1968 阅读 · 4 评论 -
前端策略模式:react hooks 表单验证
前端设计模式学习枯燥。又不知如何应用?react 函数式组件,表单校验结合策略模式,一起学习体验吧~原创 2022-11-28 20:03:11 · 888 阅读 · 0 评论 -
Vue+Node.js实现文件分片上传、断点续传、还有秒传功能(2)
目录1.上传总体流程1.前端流程2.后台流程2.代码实现1.后台接口实现1)查看当前上传状态2)文件存储3)文件合并1.上传总体流程1.前端流程2.后台流程2.代码实现1.后台接口实现1)查看当前上传状态// 查看当前上传状态app.get('/verify/:filename', async (req: Request, res: Response) => { let { filename } = req.params; let isDone = await fs原创 2021-02-12 16:55:24 · 1268 阅读 · 0 评论 -
Vue+Node.js实现文件分片上传、断点续传、还有秒传功能(1)
目录前端的文件上传1.前言2.效果展示1.分片上传2.断点续传3.秒传4.在服务端查看已经上传的文件前端的文件上传1.前言1.在文件下载时我们可以分块的下载传输,那如果要传输一个大文件呢?比如一个1G以上的一个视频,为了保证传输效率和体验,我们通常会对大文件进行分片上传,当某一个片段上传失败只需要重传当前片段。2.文件上传过程中我们还需要断点续传的功能,比如暂停后点击继续可以接着上次传输的位置继续上传,而不是重新上传。或者传输的过程中突然断网,我们也可以继续上传剩余部分。3.如果一个文件上传过一次原创 2021-02-09 10:55:03 · 1309 阅读 · 0 评论 -
按照这些步骤实现和理解promise真的很简单
目录1.前言2.准备工作1.须知2.搭建架子3.逐个突破1.resolve,reject2.接下来就是then方法的实现了3.catch4.静态方法 resolve 、 reject5. all 、reace6.结束语1.前言手写一版promise不仅仅是为了面试什么的,了解了基本的实现机制,在工作使用中也会更加得心应手。在看了手写promise的博客以后,第一感觉就是太长,代码太多不想看。我想大多数同学肯定也像我一样看到第一眼可能就被劝退了,或者狠下心想认真看完,到最后发现一知半解。。。不要再犹豫了原创 2021-01-21 16:50:03 · 380 阅读 · 0 评论 -
基于Promise实现一个限制并发请求的函数
基于Promise实现一个限制并发请求的函数1.首先模拟一下请求方法let getRequestFn = function(time){ return ()=>{ return new Promise((resolve,reject)=>{ setTimeout(() => { resolve(time) }, time); }) }} // 执行函数可返回原创 2021-01-15 12:08:41 · 1867 阅读 · 3 评论 -
js中的逻辑与、逻辑或(&& 、|| )的常见用法,以及Es2020替代写法
前言在日常开发中 && 、|| 总是会被频繁使用到,比如if的逻辑判断等等,对于用作逻辑判断的用法我们早已不陌生,今天来讲讲作为赋值运算符的用法。1.或 || 的用法1.首先基本的赋值规则是比如 :let a = 1 || 2 //如果 1 为真就为1,如果1为假就为2//根据这个规则我们知道 a = 1同样:let b = 0 || "" // 我们可以看到b的值为 ""//所以在使用 || 用作赋值时,只判断左边是否为真类确定最后的值2.常见使用场景我们通原创 2020-12-29 18:37:37 · 3190 阅读 · 1 评论 -
前端中的文件(File)、二进制(Blob)、文件读取(FileReader)应用--(文件下载、图片预览)
js虽然没有操作文件的能力,但是前端还是有一些文件和二进制的应用,比如文件下载、图片预览等今天就主要以实现以上两个功能展开探讨首先js文件相关的有Blob、File还有FileReader我们先依次介绍一下这三个对象1.Blob1)HTML5中的Blob对象只是二进制数据的容器,本身并不能操作二进制2)使用时通过构造函数实例化对象Blob() 构造函数返回一个新的 Blob 对象let aBlob = new Blob( array, options );参数:(1) ar.原创 2020-12-17 15:56:15 · 9475 阅读 · 3 评论 -
js实现一个多层级的对象合并
在日常开发中经常要使用到对象的合并js也提供了Object.assign(target, ...sources)的API用来合并对象,也可以使用展开运算符实现合并比如let obj1 = {a:1,b:2,c:3}let obj2 = {a:2,b:4,d:3}let newObj = {...obj1,...obj2}let newObj2 = Object.assign(obj1,obj2)console.log(newObj,newObj2)//{ a: 2, b: 4, c: 3,.原创 2020-12-17 15:07:18 · 3313 阅读 · 2 评论 -
一款开源的音视频会议直播系统、会议画板、会议群聊
目录结构该项目主要实现一对多会议直播,实时会议画板,和群聊功能会议直播主要用webRTC进行开发,画板使用fabric.js以对象的方式进行开发,通信主要使用socket.io、vue-socket.io项目启动npm install 安装依赖...原创 2020-11-27 14:59:15 · 1682 阅读 · 1 评论 -
js数据类型检测的几种方法的原理及其优缺点
js数据类型检测的几种方法的原理及其优缺点在日常开发中总是会用到类型检测,今天就总结一下常用的类型检测方法1.typeof (检测基本类型值)1) 使用时直接 typeof 要检测的类型值,比如2) typeof 可以检测 number、string、boolean、null、undefined、symbol、Bigint这些基本类型值。3)对于引用类型只可以检测出object(包括不同对象、数组、正则、日期等等)、function也就是说不管对象类型具体为什么类型都显示为 object比如:原创 2020-11-17 14:44:01 · 1575 阅读 · 0 评论 -
前端设计模式之观察者模式(发布订阅)
观察者模式观察者模式是基于发布订阅模式的,所以在介绍观察者模式前,我们先来看看发布订阅模式吧发布订阅模式发布订阅模式 主要有两个方法 发布-- emit 和 订阅 --on订阅的函数不会立即执行 只有当触发emit 的时候才会依次执行以生活中的例子来说—比如在购物时,遇到库存不足的商品,点击有货通知,等有货了就会执行通知发送短信,下面我们就这个例子模拟实现一下,感受一下用法let event = { _arr:[], //用来存储订阅 on(fn){原创 2020-08-13 18:25:14 · 370 阅读 · 0 评论 -
关于函数的三种角色
函数的三种角色函数在js中有着及其大的地位和意义第一种角色 ==》作为普通函数第二种==》是作为类(构造函数)第三种==》是普通对象三种角色之间可以说是没有什么关联、每种角色有着自己的机制我们通过一个例子来深入理解一下三种角色的作用和区别function Obj() { var a = 10; this.b = 100;}Obj.prototype.A = function () { //当作类 给原型添加了A属性 console.log原创 2020-08-02 23:16:53 · 317 阅读 · 0 评论 -
关于变量提升的一些细节补充
1. 关于带var 与 不带var的问题首先思考一下下方代码:console.log('a' in window);var a = 12;console.log(a);window.a = 14;console.log(a);========================//结果为依次为 true 12 14由此可以看出全局变量和window对象是有映射机制存在的在全局下声明一个变量,也相当于给window设置了一个属性(私有作用域中声明的私有变量和WINDOW没什么关系了)原创 2020-07-29 10:36:16 · 175 阅读 · 0 评论 -
作用域与作用域链
关于作用域与作用域链函数作用域:1、什么是函数作用域1、首先了解js的堆栈内存1)、栈内存(作用域):栈内存有两个作用,第一存放基本类型值,第二提供js代码自上而下执行的环境(栈内存销毁,存储的那些j基本类型值也随之销毁)2)、堆内存:用来存放引用类型值,比如:对象类型存放键值对、函数类型存放代码字符串(同样堆内存释放,那么引用值也彻底销毁)2、函数执行在代码最开始执行时,是代码自上而下执行,执行的是全局代码,所以会形成一个全局上下文EC(GLOBAL),来执行全局代码,全局代码中存原创 2020-07-29 00:42:46 · 505 阅读 · 0 评论