博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
函数节流-歪说js
阅读量:5084 次
发布时间:2019-06-13

本文共 1013 字,大约阅读时间需要 3 分钟。

歪谈js

起因:

夜深人静,月朗星稀。'window.onresize 事件' 与 '浏览器'在大战300回合,console.log('1') 1s 十次,然后就结束了,一个悲伤的故事。

事实证明太快不好,需要一些技巧拯救一下--- 函数节流

经过:

1s10次频率太多了,降低频率,上一次还没爽够,又开始下一次,浪费资源。需要强制控制一下频率。throttle---节流阀的意思。

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);    };};window.onresize = throttle(function () {    console.log(1);}, 500);// 代码 直接 扒自 js设计模式

结束:

'window.onresize 事件' 与 '浏览器' 又没羞没躁的 开始了。。。

转载于:https://www.cnblogs.com/aloneCode/p/7884088.html

你可能感兴趣的文章
动态规划算法之最大子段和
查看>>
linux c:关联变量的双for循环
查看>>
深入浅出理解zend framework(三)
查看>>
python语句----->if语句,while语句,for循环
查看>>
javascript之数组操作
查看>>
LinkedList源码分析
查看>>
TF-IDF原理
查看>>
用JS制作博客页面背景随滚动渐变的效果
查看>>
JavaScript的迭代函数与迭代函数的实现
查看>>
一步步教你学会browserify
查看>>
Jmeter入门实例
查看>>
亲近用户—回归本质
查看>>
中文脏话识别的解决方案
查看>>
CSS之不常用但重要的样式总结
查看>>
Python编译错误总结
查看>>
URL编码与解码
查看>>
日常开发时遇到的一些坑(三)
查看>>
Eclipse 安装SVN插件
查看>>
深度学习
查看>>
TCP粘包问题及解决方案
查看>>