javascript中的防抖与节流函数
1、什么是函数防抖
定义:限制一个函数在一定时间内只能执行一次。
举个例子:王者荣耀里面当英雄要回城的时候,需要8s时间才能完成回城的动作,但如果在这段时间期间受到伤害就会打断回城,重新回城又得从8时开始。
实例代码:
<script>// 给盒子注册 鼠标移动事件document.querySelector('div').addEventListener('mousemove', throttle(mousemove, 2000))// 计数器let i = 0function mousemove() {i++document.querySelector('div').innerHTML = i}//利用延时函数实现防抖function throttle(fn,time){let timerconsole.log(1);return function(){clearTimeout(timer)timer = setTimeout(()=>{fn()},time)}}</script>
2、什么是函数节流
概念:函数防抖(debounce),防抖触发高频率事件时n秒后只会执行一次,如果n秒内再次触发,则会重新计算。
举个例子:坐电梯的时候,如果电梯检测到有人进来(触发事件),就会多等待 10 秒,此时如果又有人进来(10秒之内重复触发事件),那么电梯就会再多等待 10 秒。
实例代码:
<script>// 给盒子注册 鼠标移动事件document.querySelector('div').addEventListener('mousemove', throttle(mousemove, 2000))// 计数器let i = 0function mousemove() {i++document.querySelector('div').innerHTML = i}// 利用时间戳实现 函数节流function render(fn,time){let times = +new Date()return function(){let timee = +new Date()if(timee-times>time){fn()times=timee}}}
</script>
javascript中的防抖与节流函数相关推荐
- vue中的防抖和节流
vue中的防抖和节流 防抖:触发高频事件后n秒内函数只会执行一次,如果n秒内高频事件再次被触发,则重新计算时间. 使用场景:频繁触发.输入框搜索 因为防抖的特性,一直执行最后一次的触发,所以可以用于鼠 ...
- 输入防抖 vue # 输入搜索的时候 及时搜索的快速访问接口的 解决方案 vue 中使用防抖和节流
输入防抖 vue # 输入搜索的时候 及时搜索的快速访问接口的 解决方案 vue 中使用防抖和节流 参考文章: (1)输入防抖 vue # 输入搜索的时候 及时搜索的快速访问接口的 解决方案 vue ...
- JavaScript中的String()函数与示例
String()函数 (String() function) String() function is a predefined global function in JavaScript, it i ...
- JavaScript中常见的字符串操作函数及用法汇总
转载地址:http://www.jb51.net/article/65358.htm 这篇文章主要介绍了JavaScript中常见的字符串操作函数及用法,实例汇总了javascript常见的字符串转换 ...
- 一篇文章把你带入到JavaScript中的闭包与高级函数
在JavaScript中,函数是一等公民.JavaScript是一门面向对象的编程语言,但是同时也有很多函数式编程的特性,如Lambda表达式,闭包,高阶函数等,函数式编程时一种编程范式. funct ...
- 前端中unescape是什么意思_详解JavaScript中的Unescape()和String() 函数
JavaScript中的Unescape()和String() 函数详解,具体内容如下所示: 定义和用法 JavaScript unescape() 函数可对通过 escape() 编码的字符串进行解 ...
- 全网最详细JavaScript防抖、节流函数解析
防抖与节流 防抖与节流 防抖 作用与简介 实现 核心与细节 应用场景 节流 作用与简介 实现 核心与细节 应用场景 防抖与节流 防抖 作用与简介 在一个周期T内,如果重复的进行某种响应操作,在不设置防 ...
- apply、call、bind三者的区别—附:防抖、节流函数
apply.call.bind三者的区别 相同点 1.1 三者都能改变函数中的this指向 1.2 第一个参数都是是要改变的this指向的对象 不同点 2.1.第二个参数:apply传的是参数数组:c ...
- 在javaScript中,变量名和函数名不能重名
直接上代码和截图 在javaScript中,变量的名字和函数的名字不能取一样的名字(即变量名和函数名不能重名) <script type="text/javascript"& ...
最新文章
- UILabel的自适应宽高
- 2012 BI市场(一)
- Dex-net再次复现
- mysql百万数据删除_【MySQL】删除大量数据的具体实现
- 牛客题霸 [ 环形链表的约瑟夫问题] C++题解/答案
- 基于TableStore的物联网元数据管理
- 闭包会造成内存泄漏吗?
- 乱谈互联网产品开发(二)
- linux如何导出mysql数据,linux下mysql数据的导出和导入
- kafka的connect实现数据写入到kafka和从kafka写出
- MySQL新闻和新闻详情关联_新闻首页实现 -- 5. 新闻详情以及评论功能实现
- python上传数据到坚果云_坚果云功能
- oss图片无法在网站中显示
- OSChina 周六乱弹 ——因为四毛钱,友谊的小船就翻了
- 【技术文档】《算法设计与分析导论》R.C.T.Lee等·第4章 分治策略
- 启动期间的内存管理之初始化过程概述----Linux内存管理(九)
- 介绍一款最受欢迎的.NET 开源UI库
- matlab为long term visual tracking数据集生成groundtruth.txt
- windows下putty自动登录和窗口显示IP
- web系统快速开发_开发一个快速销售系统
热门文章
- [电脑]_开始着手做小软件站
- kill命令用法举例
- iPad Pro 生产力指南 epub
- FFmpeg基础知识音频篇(二)
- 前后端分离——CORS
- 1. HbuliderX-移动端APP开发-前端开发ajax请求失败或错误-常见问题-原因分析-处理
- Macbook Pro (15'', Late 2013) 外接技嘉显卡扩展坞 使用经验
- 10、在线自定义参数接口,免费好用
- 【已解决】failed to execute [‘dot‘, ‘-Tpng‘, ‘-O‘, ‘MyConvnet_hl‘]
- 安卓手机、平板死机长按开机键10秒钟以后重启是如何做到的?