函数防抖

函数防抖就是让某个函数满足等待某个时间内不再触发此函数后再执行, 而在这个等待时间内再次触发此函数, 等待时间会重新计算。例如监听滚动无限加载时,如果没有对请求函数进行防抖控制,用户拉到底部时会多次触发请求函数。进行防抖控制后,只有用户拉到底部并且在规定的事件内不再滚动才会触发请求函数。

function debounce(func, wait) {var timeout;return function () {var context = this;var args = arguments;clearTimeout(timeout)timeout = setTimeout(function(){// 不改变this和event参数func.apply(context, args)}, wait);}
}
div.onmouseover = debounce(someFunc, 1000)

如果希望在进行防抖控制前先让函数执行一次

function debounce(func, wait, immediate) {var timeout, result;return function () {var context = this;var args = arguments;if (timeout) clearTimeout(timeout);if (immediate) {// 如果已经执行过,不再执行var callNow = !timeout;timeout = setTimeout(function(){timeout = null;}, wait)if (callNow) func.apply(context, args)}else {timeout = setTimeout(function(){func.apply(context, args)}, wait);}}
}
div.onmouseover = debounce(someFunc, 1000, true)

函数节流

如果需要持续触发事件,每隔一段时间,只执行一次事件,那就需要对函数进行节流

function throttle(func, wait) {var context, args;var previous = 0;return function() {var now = +new Date();context = this;args = arguments;if (now - previous > wait) {func.apply(context, args);previous = now;}}
}
div.onmousemove = throttle(someFunc, 1000);

转载于:https://www.cnblogs.com/Q-Zhan/p/7825650.html

JavaScript小知识点(二):函数防抖和节流相关推荐

  1. ajax,HTTP原理 : 网络传输协议,网页从输入url到渲染的流程,函数防抖和节流

    一. 前后端交互流程 1.服务器 : 提供某种服务器的机器(计算机) qq音乐:音频服务器 , 迅雷:文件服务器 , qq邮箱:邮件服务器,爱奇艺:视频服务器,谷歌:web服务器 2. 前端 访问 服 ...

  2. 虾扯蛋之函数防抖和节流

    背景     今天在coding的时候,做了一个搜索框,也正是这个搜索框,让我和后台小伙伴直接由铁磁变为塑料兄弟.那到底发生啥了呢?其实很简单,其实很无奈,就是我用王者的手速把他的接口访问崩了!    ...

  3. 防抖 节流_每日一题手写函数防抖与节流

    关注"前端学苑" ,坚持每天进步一点点 「~函数防抖与节流 ~」 每日一题,希望让爱学习.思考的前端技术伙伴在一起学习.复盘.成长. 基础知识要夯实,原理源码要深入,深度广度要扩展 ...

  4. resize函数_每日一题手写函数防抖与节流

    关注"前端学苑" ,坚持每天进步一点点 「~函数防抖与节流 ~」 每日一题,希望让爱学习.思考的前端技术伙伴在一起学习.复盘.成长. 基础知识要夯实,原理源码要深入,深度广度要扩展 ...

  5. JavaScript 小知识点

    原型链相关 最详尽的 JS 原型与原型链终极详解 isNaN() 和 Number.isNaN() 的区别 isNaN() 是 ES1 规范: 是全局方法: 如果参数不是一个 Number 类型,会先 ...

  6. 什么是防抖、节流?小程序项目优化——防抖、节流

    1.什么是防抖.节流?(个人理解) 防抖:延迟函数执行.设置定时器,通过定时器来执行函数,可以重置定时器防止函数高频率的执行导致加载缓慢.加重服务器负担. 节流:间隔执行函数.如果某段代码在一段时间内 ...

  7. “约见”面试官系列之常见面试题第二十一篇之函数防抖和节流(建议收藏)

    目录 前言 概念 函数防抖(debounce) 函数节流(throttle) 常见应用场景 函数防抖的应用场景 函数节流的应用场景 实现原理 函数防抖(debounce) 函数节流(throttle) ...

  8. 防抖与节流方案_函数防抖和节流

    在前端开发的过程中,我们经常会需要绑定一些持续触发的事件,如 resize.scroll.mousemove 等等,但有些时候我们并不希望在事件持续触发的过程中那么频繁地去执行函数. 通常这种情况下我 ...

  9. 菜鸟学习JavaScript小实验之函数引用

      function tt()         {             alert(11);         }         var b = tt;         var b1 = tt() ...

最新文章

  1. 7 年“键盘手”没在意!某程序员手疼查出骨肿瘤,已让骨头成了“豆腐渣”
  2. 红黑树:自平衡的二叉查找树
  3. hdu4885 有 限制的最短路
  4. tableau必知必会之VMware 搭建 Tableau Server for Linux 单机环境
  5. 爬虫学习笔记(十九)—— 滑动验证码
  6. c 中连接mysql登录不成功_数据库连接失败的原因分析及解决办法 | 学步园
  7. es6 --- promise和async/await的区别
  8. 演示: GTS流量×××和CAR流量监管的效果及相关实践计划
  9. .NET 6 预览版 7 Released
  10. ClickHouse表引擎
  11. 301.inc.php,DeDeCMS默认首页及WWW域的301跳转
  12. 单边指数信号的特点_今日股市分析:上证指数若能守住3400,蓄力反弹就有戏...
  13. golang生成c-shared so供c语言或者golang调用到例子
  14. Windows Phone 7 优秀开源项目概览 来源:http://www.cnblogs.com/porscheyin/archive/2010/12/15/1906476.html...
  15. SQLite指南(4) - FAQ列表(important)
  16. python学习笔记--python数据类型
  17. 计算机芯片级维修包括哪些,电脑芯片级维修教程
  18. 位置不可用无法访问介质受写入保护怎么修复?
  19. 计算机协会游戏方案,计算机协会社团各月工作总结及工作计划
  20. 从0到1详解推荐系统的基础知识与整体框架

热门文章

  1. JavaScript对象的深入理解 (一)
  2. docker容器之RabbitMQ
  3. DJango 多条件查询结果分页
  4. Fastlane为iOS带来持续部署
  5. !!!随机数生成!!
  6. SQL SERVER 内存分配及常见内存问题(1)——简介
  7. /etc/securetty文件
  8. 比较两个数组,输出不重复的数组
  9. Intel 5400平台 芯片组
  10. 用CONVERT命令转换FAT到NTFS,合适吗?