码迷,mamicode.com
首页 > 其他好文 > 详细

函数节流与函数去抖

时间:2018-11-23 20:46:53      阅读:133      评论:0      收藏:0      [点我收藏+]

标签:资源   无响应   use   运行   highlight   通过   校验   一段   问题   

函数节流与函数去抖都是为了解决密集的js函数运行问题。怎么分析和使用两种情况呢?

函数节流:

是指函数在一段时间执行一次,即降低函数运行的频率。比如说,在onmousemove时,进行一次dom操作,如果长时间的onmousemove,这样所触发回调数量是大量的,因为进行了大量的dom操作,可能导致浏览器无响应。这时候就可以听过函数节流,使一段时间触发一次回调函数,大大降低了消耗。

var ifRun  = true;
function run () {
    if (!ifRun) {
        return;
    }
    ifRun = false;
    ```
    do sth
    ```
    setTimeOut(() => {ifRun = true},300);
 }
dom.onmousemove = run();

  1.设置一个标识,用来判断是否执行函数。

  2.在触发函数时,如果不到所期望的时间,return,不继续执行函数。相反,将标识置反,并进行相应的业务代码。最后设置一个定时器,通过定时器,将标识置为true。

函数去抖(防抖):
函数仅执行一次,在等待间隔内触发函数时,更新等待时间。举个栗子??,常见的输入框校验,如果监听onkeyup事件,发起校验请求。实际上浪费了资源,因为我们所期望的是在输入完毕后进行校验。那么就可以通过函数去抖来实现。

var timer = false;
function debounce() {
    clearTimeOut(timer);
    timer = setTimeOut(() => {
        ```
        do sth
        ```
    }
}

  通过设置timeout,进行操作。调用函数是,首先清楚已经存在的timer,并重新设置。

函数节流与函数去抖

标签:资源   无响应   use   运行   highlight   通过   校验   一段   问题   

原文地址:https://www.cnblogs.com/yiangli/p/10009075.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!