throttle节流函数,就是一个函数调用的频率控制器;

var safe = true;
function throttle() {if (safe) {lazyLoad();safe = false;setTimeout(function() {safe = true;}, 500);}}

如下代码,safe每隔500ms才会为true,所以srollFn最快500ms执行一次。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body style="height:2000px">
<script>/*throttle节流函数,就是一个函数调用的频率控制器;如下代码,safe每隔500ms才会为true,所以srollFn最快500ms执行一次。*/var num = 0;function lazyLoad() {num++;console.log(num);}var safe = true;function throttle() {if (safe) {lazyLoad();safe = false;setTimeout(function () {safe = true;}, 1000);}}window.onscroll = throttle;</script>
</body>
</html>

转载于:https://www.cnblogs.com/aredleave/p/7573157.html

节流函数(throttle)的原理相关推荐

  1. 小程序开发中使用节流函数throttle的正确方式

    问题 以前在开发小程序项目时,经常遇到节流需求,然后研究了好久都没成功.今天又遇到了,终于被我弄成功了.原来是使用方法错误,终究还是Javascript的基本功差导致的. 使用的小程序开发框架是mpv ...

  2. 深入浅出节流函数 throttle

    引言 上一节我们详细聊了聊高阶函数之柯里化,通过介绍其定义和三种柯里化应用,并在最后实现了一个通用的 currying 函数.这一小节会继续之前的篇幅聊聊函数节流 throttle,给出这种高阶函数的 ...

  3. 简单的节流函数throttle

    在实际项目中,总会遇到一些函数频繁调用的情况,比如window.resize,mouseover,上传进度类似的触发频率比较高的函数,造成很大的性能损耗,这里可以使用节流函数来进行性能优化,主要是限制 ...

  4. 实现js节流函数throttle

    两个timer实现js节流函数 用两个timer做一个函数调用节流器,不需要更多的逻辑,保证第一次调用和每间隔timeout时间后被触发和最后一次的调用被触发: // js 节流函数实现 functi ...

  5. 节流函数-throttle

    1. 功能 throttle 和防抖一样都是减少高频率执行代码的执行频率. 2.使用场景 oninput onresize onscroll onmousemove onmousehover 等等 3 ...

  6. JavaScript 节流函数 Throttle 详解

    在浏览器 DOM 事件里面,有一些事件会随着用户的操作不间断触发.比如:重新调整浏览器窗口大小(resize),浏览器页面滚动(scroll),鼠标移动 (mousemove).也就是说用户在触发这些 ...

  7. throttle节流函数

    深入浅出节流函数 throttle 函数节流指的是某个函数在一定时间间隔内(例如 3 秒)只执行一次,在这 3 秒内 无视后来产生的函数调用请求,也不会延长时间间隔.3 秒间隔结束后第一次遇到新的函数 ...

  8. 详解防抖函数(debounce)和节流函数(throttle)

    函数防抖(debounce) 函数防抖,就是指触发事件后,在 n 秒后只能执行一次,如果在 n 秒内又触发了事件,则会重新计算函数的执行时间. 简单的说,当一个动作连续触发,只执行最后一次. 列举: ...

  9. vue中如何使用节流(throttle)函数

    JavaScript 中的函数大多数情况下都是由用户主动调用触发的,除非是函数本身的实现不合 理,否则我们一般不会遇到跟性能相关的问题.但在一些少数情况下,函数的触发不是由用户直 接控制的.在这些场景 ...

最新文章

  1. 单链表-在带头结点的单链表L中删除一个最小值结点(四指针)
  2. 码位(code position/point)Unicode 编码与 Python 2/3 编码兼容性问题
  3. 关于301跳转的多种办法
  4. Ajax提交打开新窗口,浏览器拦截处理;以及跨域问题
  5. devops_您的DevOps阅读心愿单的10本书
  6. scala模板写入es_Spark——scala 实用小方法
  7. (转)Java 调用 C++ (Java 调用 dll)
  8. InfoPath中repeationg section动态填充数据
  9. 遗传优化算法优化LSTM结构-准确率
  10. python实现仿射变换
  11. 计算机网络与多媒体专科测试,上海第二工业大学2021年专科层次依法自主招生生考试职业技能测试考纲...
  12. Python机器学习及实践——特征降维
  13. 电容去耦原理笔记(彻底理解并伴有公式计算)
  14. Ubuntu下与openvpx相关的目录和文件
  15. 哪个主板可供选择?ATX,Micro-ATX还是Mini-ITX?
  16. 网站服务器怎么做防御?遇到攻击如何解决?
  17. WebStorm 2016 最新安装指南 破解 汉化 字体设置
  18. 计算机应用基础试题操作题,计算机应用基础期末考试操作题.doc
  19. 解决Windows10/11系统桌面背景或者IDE背景出现的莫名其妙的方框/格子
  20. GetCheckedRadioButton

热门文章

  1. Python+selenium 自动化-mac下安装配置chrome驱动方法
  2. Windows 技术篇-WPS关闭推送广告配置方法
  3. Chrome 技术篇-console控制台检测xpath、css唯一性
  4. 3. 定义10个字节的键盘缓冲区,然后键盘输入字符填满该缓冲区,做如下工作: (1)分别将输入键盘缓冲区的字符按数字,小写字母,大写字母,其他字符进行计数; 分别将这些计数值显示出来。 (2)分别将这
  5. 【C language】函数指针
  6. sdut 2136 数据结构实验之二叉树的建立与遍历
  7. 3.3 matlab用switch语句实现选择结构
  8. markdown希腊字母
  9. 轻松删除git本地创建的仓库
  10. 插入排序InsertionSort(Python实现)