zoukankan      html  css  js  c++  java
  • js性能优化之函数节流(分流函数)

    函数节流的原理

    比如我们在window.onresize事件中要打印当前浏览器窗口的大小,在我们通过拖拽来改变窗口大小时候,打印窗口大小这个工作1s就运行了10次。而实际上我们只需要2次或者3次。 
    比如这行代码

    window.onresize = function() {
        console.log(1);
    }
    

    分流函数实现的思路

    实现的思路就是将即将被执行的函数用setTimeout延迟一段时间再执行。如果该次执行还没有完成,则忽略下面调用该函数的请求。

    因此这个节流函数有两个参数,一个是需要被执行的函数,另一个是延迟的时间

    var throttle = function(fn, interval) {
        var _self = fn,
            timer,
            firstTime = true;
        return function() {
            var args = arguments,
                _me = this;
            //如果是第一次调用不需要延迟执行
            if (firstTime) {
                _self.apply(_me, args);
                return firstTime = false;
            }
            if (timer) {
                return false;
            }
            timer = setTimeout(function() {
                clearTimeout(timer);
                timer = null;
                _self.apply(_me, args);
            }, interval || 500)
        }
    }

    .

  • 相关阅读:
    堆排序
    阿里云
    ubuntu下编译内核模块
    字节对齐
    线段树
    c++虚函数表解析
    电面
    sql server数据库定时自动备份
    [hiho1584]Bounce
    五彩斑斓的世界
  • 原文地址:https://www.cnblogs.com/crazycode2/p/8793259.html
Copyright © 2011-2022 走看看