博客
关于我
JavaScript 性能优化-防抖和节流
阅读量:308 次
发布时间:2019-03-04

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

由来

在前端开发中有一部分的用户行为会频繁的触发事件执行,而对于DOM操作.资源加载等耗费性能的处理,

很可能导致页面的卡顿,甚至是浏览器的崩溃.函数节流和函数防抖就是为了解决类似需求应运而生的。

节流

  • 定义
  1. 函数节流就是预定一个函数只有在大于等于执行周期时才执行,周期内调用不执行。好像水滴攒到一定重量才会落下一样。
  • 场景
  1. 窗口调整(resize)
  2. 页面滚动(scoll)
  3. 抢购疯狂点击(mousedown)
  • 实现
function throttle(handler, wait){              // handler 预定义函数 wait等待毫秒数            var lastTime = 0;            return function(e){                var nowTime = new Date().getTime();                if(nowTime-lastTime > wait){                    handler.apply(this,arguments);                    lastTime = nowTime;                }else{                    //lastTime = nowTime;                }            }        }

防抖

  • 定义
  1. 函数防抖就是在函数需要频繁触发情况下,只要有足够的空闲时间,才执行一次。
    就好像是公交司机会等人都上车后才出站一样
  • 场景
  1. 实时搜索(keyup)
  2. 拖拽(mousemove)
  • 实现
function debounce(handler, delay){ 		    // handler 预定义函数 wait等待毫秒            var timer = null;            return function (){                var _self = this, args = arguments;                clearTimeout(timer);                timer = setTimeout(function(){                    handler.apply(_self, args);                },delay);            }        }

转载地址:http://xvaq.baihongyu.com/

你可能感兴趣的文章
【更新】CLion v2018.3发布(六):VCS和插件
查看>>
文件服务器——src文件夹
查看>>
从零构建通讯器--5.2三次握手,telnet,wireshark
查看>>
如何判断两个浮点数是否相等?
查看>>
苹果进军搜索,背后藏着什么“阳谋”?
查看>>
egg:如何在控制器中拿到前端传的参数
查看>>
struct 模块
查看>>
编程与编程语言分类
查看>>
【 UVA - 572 】 Oil Deposits (DFS水题)
查看>>
约瑟夫环问题
查看>>
ES6 JavaScript 重新認識 Promise
查看>>
分享九款不同页面404源码html
查看>>
404页圈小猫游戏代码
查看>>
好看清新卡通人物404单页网站源码
查看>>
简洁仿t猫404页html源码
查看>>
Python九齿耙(Ninerake)数据采集大数据深度学习智能分析爬虫软件的正则表达式规则简介
查看>>
Kotlin实现冒泡排序
查看>>
NodeJS下TypeScript环境安装
查看>>
汽车后市场,小程序为何独占鳌头
查看>>
短视频小程序,互联网新风口
查看>>