博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
防抖与节流
阅读量:6234 次
发布时间:2019-06-22

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

当事件上绑定了事件处理程序,当这个事件被持续触发时,一直会执行这个事件处理程序,比如onscroll、onresize,而这是没有必要的,甚至会影响性能,影响用户体验。因此,需要在绑定事件的时候做一些操作,使之执行事件处理程序不要那么频繁。主要有两种思路。

一、函数防抖

  当持续触发事件后,一段时间后没有再触发这个事件,执行事件处理程序。如果在设定时间到来之前,再次触发了这个事件,则重新开始计时

var timer = null;    document.body.onscroll = function(){        clearTimeout(timer); // 清除未执行的代码,重置回初始化状态        timer = setTimeout(function(){            console.log("函数防抖");        }, 300);    };

二、函数节流

var canRun = true;    document.body.onscroll = function(){        if(!canRun){            // 判断是否已空闲,如果在执行中,则直接return            return;        }        canRun = false;        setTimeout(function(){            console.log("函数节流");            canRun = true;        }, 300);    };

 

转载于:https://www.cnblogs.com/wenzizaigaoge/p/10537160.html

你可能感兴趣的文章
oracle 学习摘记
查看>>
Convert Sorted Array to Binary Search Tree
查看>>
HDU - 2955 Robberies
查看>>
awk数组学习1
查看>>
java基础语法
查看>>
浅谈《Linux就该这么学》
查看>>
DOM不同的结点类型
查看>>
深入理解Java虚拟机,gc输出参数
查看>>
Windows内存管理介绍
查看>>
组合继承
查看>>
拖拽对话框
查看>>
DOORS的引用类型
查看>>
Jmeter压力测试环境准备
查看>>
codeforces 982 c
查看>>
MySQL初识与安装
查看>>
安卓 权限 规则
查看>>
HashMap的实现原理 HashMap底层实现,hashCode如何对应bucket?
查看>>
Deployed component GUIs and figures have different look and feel than MATLAB desktop
查看>>
自定义UISlider
查看>>
构建方法
查看>>