![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
js
a_passing_traveller
这个作者很懒,什么都没留下…
展开
-
防抖的三种形式
时间戳实现当触发时间相加大于500毫秒时执行触发和执行同时无法保证最后一次触发一定执行function throttle(callback, duration = 500) { let prevTime = Date.now() return function () { let now = Date.now() if (now - prevTime > duration) { callback() prevTime = now }原创 2021-07-06 23:21:31 · 184 阅读 · 0 评论 -
ajax封装
encodeURIComponent实现了对一些特殊字符的编码,传到后台需后台解码,可以根据自己的业务只对一些特殊的接口做编码。post请求头Content-Type一般有json和form两种格式,分别以json和键值对格式传给后端。function axios({ url, method = 'GET', params, data = {}, header, success,...原创 2020-05-07 17:44:50 · 106 阅读 · 0 评论 -
js发布订阅模式
发布订阅模式广泛用于js中,从早期的jq事件池的机制到后面vue的eventbus都是典型的发布订阅模式。在该模式中,发布者向事件池中发送或移除事件,由事件池通知订阅者。这样大大降低了代码之间的耦合度,使得代码更利于维护。这一点也是和观察者模式最大的区别,观察者是发布者直接发送消息给订阅者,是强耦合的。一个简单的发布订阅模式let subscribe = function () { c...原创 2020-03-31 20:30:23 · 239 阅读 · 0 评论 -
vue实现大文件切片上传
利用file里面的slice方法可以将文件切片,前端进行切片处理向http并发传递。等所有切片上传完成后再向服务器发送一个合并切片的请求。<input type="file" @change="onChange" ref="fileInput" />onChange() { let self = this; let file = this.$refs.fileInpu...原创 2020-03-15 12:34:09 · 4116 阅读 · 2 评论 -
js单线程(js在node和浏览器中运行的机制)
js 运行的顺序 同步→异步(微任务→宏任务)先执行全局的同步代码,在node中从微任务队列中依次取出所有的任务放入调用栈中执行,然后开始宏任务,宏任务队列中的所有任务都取出来执行(在浏览器中,浏览器只取一个,执行完一个宏任务后再执行下一个),每个宏任务阶段执行完毕后,开始执行微任务,再开始执行下一阶段宏任务,以此构成事件循环node中 同步→所有微任务→所有宏任务(同步→所有微任务→...原创 2019-08-10 12:43:24 · 235 阅读 · 0 评论 -
图片懒加载
代码思路页面滚动时加载图片判断页面窗口+页面滚动距离是否大于图片距顶部的距离,大于则加载。通过创建实例预加载图片,加载完成后赋到图片上。<div> <img src="images/loading.gif" data-src="images/1.jpg"></div><div> <img src="images/loadin...原创 2019-07-05 17:29:30 · 103 阅读 · 0 评论 -
js伪数组
拥有length属性,但不具有索引和数组的方法,本质是一个对象。//一个简单的伪数组var arr = { length: 3, "0": "first", "1": "second", "2": "third"};将伪数组转化成数组<body> <ul id="ul"> <li id="li">&...原创 2019-05-08 11:00:18 · 135 阅读 · 0 评论 -
js常用封装
时间处理function dateToString(date){ //2018年X月X日 00:00:00 星期X // y/m/d h:M:s var week = ["星期天","星期一","星期二","星期三","星期四","星期五","星期六"] var dateStr = ""; var y = date.getFullYear(); var m = date.getM...原创 2019-04-09 15:47:54 · 86 阅读 · 0 评论 -
js防抖和限流
防抖function debounce(callback,delay=300){ var t = null return function(){ clearTimeout(t) t = setTimeout(callback,delay) } } window.onscroll = debounce(function(){ cons...原创 2019-04-08 10:54:56 · 3316 阅读 · 0 评论 -
js操作audio和video
自定义样式audio和vedio是默认看不见元素的,可以使用设置controls样式使其可见(该样式由浏览器自己提供),在network中看到media看到相关的信息。这里我们取消controls自定义它的样式。 <div class="box"> <video id="myVideo"> <source src="http://www....原创 2019-04-06 17:13:12 · 384 阅读 · 0 评论