美文网首页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