js函数节流和函数防抖的作用

来源:程序思维浏览:1855次
人生一世,草木一秋。
非淡泊无以明志,非宁静无以致远。下面开始我们今天的内容《函数节流和函数防抖》

js函数节流和函数防抖的作用

在行走江湖的过程中,会出现很多性能优化的问题来让你手足无措。那么,我们今天就找了比较常见的“节流和防抖”两种性能优化问题进行讲解。嗯,相信很多人也都遇到过这种情况。没错,接下来,我们就针对这两个问题来为你答疑解惑。

函数节流

节流呢,就是优化高频率执行js代码的一种手段。大家都知道oninput,onkeypress,onscroll,resize等事件触发频率非常高,那么如果在这些事件触发时执行代码,就会相应的将代码块执行很多次。但是通常大量的重复执行是没有必要的,比如说大家非常熟悉的搜索引擎的联想查询功能。它是在用户进行键入的同时进行的ajax数据请求。但是键盘事件触发的频率是按照字母来计算的,不是按照汉字或者单词,如果是每键入一个字母都触发一次数据请求,就非常的低效。在这种情况下,我们就有必要降低这种操作的频率,保证一定时间内,核心代码只执行一次。这样在核心代码块比较沉重的时候,就会大大提升我们的性能了。

类比到咱们生活中的例子。高频事件就像一个大开的水龙头,水流源源不断大量流出,就像代码在不断执行。这是对资源的一种浪费。我们要通过节流,把水龙头拧紧一点,让它流水的频率降低,但是每一段时间都能滴下一滴水,从而节省资源。

节流就是这样的一种优化思想。(讲代码)(分析代码)

一句话总结:节流就是保证一段时间内只执行一次核心代码

函数防抖

节流的效果非常好,但是防抖也是一项必备技能,那么在下就来说一下防抖吧!
防抖其实就是搜索功能的实现。。。。。

这就是在下理解的防抖,各位,献丑了。。。

3. 应用场景

不戒和尚:不愧都是江湖老怪,和尚我佩服,那么我就根据两位的讲解,来说一下他们的应用场景吧.....适用场景:
节流:
下拉加载...

防抖:
搜索功能...

面试问题:
问: 项目中做过哪些?
回答:性能优化

函数节流:
让一个函数不要执行得太频繁,减少一些过快的调用来节流。

核心就是:
让一个函数不要执行得太频繁,减少一些过快的调用来节流。

防抖:

事件保持触发,一定时间内没有触发

核心:在一定时间段的连续函数调用,只让其执行一次
追问:在什么项目用到过?

假设我们网站有个搜索框,用户输入文本我们会自动联想匹配出一些结果供用户选择。
我们可能首先想到的做法就是监听keypress事件,然后异步去查询结果。
这个方法本身是没错的,但是如果用户快速的输入了一连串的字符,假设是10个字符,那么就会在瞬间触发了10次的请求,这无疑不是我们想要的。
我们想要的是用户停止输入的时候才去触发查询的请求,这时候函数防抖可以帮到我们。

节流应用场景:

滚动浏览器滚动条的时候,更新页面上的某些布局内容或者去调用后台的某接口查询内容。
同样的,如果不对函数调用的频率加以限制的话,那么可能我们滚动一次滚动条就会产生N次的调用了。
但是这次的情况跟上面的有所不同,我们不是要在每完成等待某个时间后去执行某函数,而是要每间隔某个时间去执行某函数,避免函数的过多执行。


那么今天有关于节流和防抖的讲解就到这里。
精品好课
VUE2+VUE3视频教程从入门到精通(全网最全的Vue课程)
VUE是目前最火的前端框架之一,就业薪资很高,本课程教您如何快速学会VUE+ES6并应用到实战,教你如何解决内存泄漏,常用UI库的使用,自己封装组件,正式上线白屏问题,性能优化等。对正在工作当中或打算学习VUE高薪就...
最新完整React+VUE视频教程从入门到精,企业级实战项目
React和VUE是目前最火的前端框架,就业薪资很高,本课程教您如何快速学会React和VUE并应用到实战,教你如何解决内存泄漏,常用库的使用,自己封装组件,正式上线白屏问题,性能优化等。对正在工作当中或打算学习Re...
HTML5视频播放器video开发教程
适用人群1、有html基础2、有css基础3、有javascript基础课程概述手把手教你如何开发属于自己的HTML5视频播放器,利用mp4转成m3u8格式的视频,并在移动端和PC端进行播放支持m3u8直播格式,兼容...
Vue2+Vue3+ES6+TS+Uni-app开发微信小程序从入门到实战视频教程
2021年最新Vue2+Vue3+ES6+TypeScript和uni-app开发微信小程序从入门到实战视频教程,本课程教你如何快速学会VUE和uni-app并应用到实战,教你如何解决内存泄漏,常用UI库的使用,自己...
最新完整React视频教程从入门到精通纯干货纯实战
React是目前最火的前端框架,就业薪资很高,本课程教您如何快速学会React并应用到实战,教你如何解决内存泄漏,常用UI库的使用,自己封装组件,正式上线白屏问题,性能优化等。对正在工作当中或打算学习React高薪就...
React实战视频教程仿京东移动端电商
React是前端最火的框架之一,就业薪资很高,本课程教您如何快速学会React并应用到实战,对正在工作当中或打算学习React高薪就业的你来说,那么这门课程便是你手中的葵花宝典。
jQuery视频教程从入门到精通
jquery视频教程从入门到精通,课程主要包含:jquery选择器、jquery事件、jquery文档操作、动画、Ajax、jquery插件的制作、jquery下拉无限加载插件的制作等等......
HTML5基础入门视频教程易学必会
HTML5基础入门视频教程,教学思路清晰,简单易学必会。适合人群:创业者,只要会打字,对互联网编程感兴趣都可以学。课程概述:该课程主要讲解HTML(学习HTML5的必备基础语言)、CSS3、Javascript(学习...
收藏
扫一扫关注我们