美文网首页Web前端之路Java Web知识
面试必备函数的节流.函数的去抖

面试必备函数的节流.函数的去抖

作者: really大叔 | 来源:发表于2019-06-26 19:09 被阅读8次

.函数的去抖:

什么叫做函数的去抖,就相当于你从函数的开头到结尾只执行一次的的叫做去抖:

也就是他给你一巴掌,他十分钟原谅你,到了2分钟了他有给你一巴掌,所以你还的等10分钟.

例子:

var timer = null;

    function handlerSearch(){

        cliearTimeout(timer);

        timer = setTimeout(function(){

            console.log(1)

        },500)

    }

函数的节流:

在你设置的时间之内只执行一次某段代码,

也就是:你给他一巴掌,他也是10分钟原谅你,但是你只有在这个10分钟内部不动他,他就会原谅你,只有你动了那就完了,所以你必须10分钟后再打他

例子:

var timer = null;

    function handlerSearch(){

        if(timer!=null){

            return false

        }

    timer = setTimeout(function(){

        console.log(1);

        timer = unll;

    },200)

}

函数节流与函数去抖的封装

// 函数去抖;

function _debounce(callback,dealy){

    // 利用闭包,让 timer 私有化;

    var timer = null;

    return function(){

    // 去抖函数; 确保,callback在正确的时机被调用?

    // 事件执行的时候,真正会执行的函数是这个;

        if(timer !== null) return false;

            // 如果已经过了规定的时间可以再次执行代码了;

            timer = setTimeout(function(){

            callback();

            timer = null;

        },dealy)

    }

}

// 函数节流;

function _throttle(callback,dealy){

    // 利用闭包,让 timer 私有化;

    var timer = null;

    return function(){

        clearTimeout(timer);

        // 如果已经过了规定的时间可以再次执行代码了;

        timer = setTimeout(function(){

            callback();

        },dealy)

    }

}

相关文章

网友评论

    本文标题:面试必备函数的节流.函数的去抖

    本文链接:https://www.haomeiwen.com/subject/yviklqtx.html