关于防抖与节流的应用方案

简介: 防抖:一段时间完成一个操作;节流:定时完成操作。

应用场景:


防抖


1、seach搜索联想,用户在不断输入输入值时,用防抖来节约请求资源。

2、windows触发resize的时候,不断的调整浏览器窗口大小会不断的触发这个事件,用防抖来让其只触发这一次。

3、防止重复提交。


节流


1、鼠标不断点击触发,mousedown(单位时间内只触发一次)。

2、监听滚动事件,比如是否滑到底部自动加载更多,用throttle。


<!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>防抖与节流</title>
        <style>
            .container{width: 400px;height: 200px;background: #ccc;text-align: center;font-size: 25px;line-height: 200px;}
        </style>
    </head>
    <body>
        <div class="container"></div>
    </body>
    <script>
    var count=1;
    var container=document.querySelector(".container");
    function getUser() {
        this.innerHTML= count++;
    }
    // container.onmousemove=demo(getUser,1000,true);//防抖
    container.onmousemove = time(getUser, 1000);//节流
// *****************************************************************
//防抖
    function demo(fn,wait,buber) {
        var timer;
        return function () {
            clearTimeout(timer);
            if(buber){
                var callNow=!timer;
                timer=window.setTimeout(function () {
                    timer=null
                },wait);
                if(callNow){
                    fn.apply(this);
                }
            }
            else{
                clearTimeout(timer);
                timer = window.setTimeout(fn.bind(this), wait);
            }
        }
    }
// 节流
    function time(fn,wait){
        var pp=0;//参照物
        return function () {
            var now= + new Date();//1970 1 1 到现在的毫秒数
            if(now-pp>wait){
                fn.apply(this);
                pp=now
            }
        }
    }
    </script>
    </html>



相关文章
|
安全 网络安全 数据安全/隐私保护
网络ACL
网络ACL 网络ACL(Access Control List)是一种网络安全机制,用于控制网络中数据流的进出和传递。它基于规则列表,定义了允许或拒绝通过网络设备(如路由器、防火墙)的数据流。 网络ACL通常用于限制或过滤特定类型的流量,以实现对网络资源和服务的保护和管理。它可以根据不同的条件对数据流进行过滤,如源IP地址、目标IP地址、源端口、目标端口、协议类型等。 下面是网络ACL的一些常见应用场景和功能: 1. 访问控制:网络ACL可以设置规则,限制特定IP地址或子网访问某些网络资源。例如,可以设置拒绝来自某个IP地址的所有入站流量,或者只允许特定子网的流量通过。
1268 0
|
5月前
|
传感器 机器学习/深度学习 自动驾驶
别再被忽悠了!搞懂这100个硬核黑话,秒变自动驾驶老司机
本 glossary 精选100个自动驾驶核心术语,覆盖ADAS分级、传感器(激光雷达/摄像头等)、感知算法(BEV/Transformer)、定位建图(SLAM/HD Map)、预测规划(MDP/MPC)、控制执行(PID/线控)及安全测试(SOTIF/影子模式)全栈知识,通俗类比+精准定义,助新人快速破译行业黑话。(239字)
752 3
|
2月前
|
人工智能 缓存 JSON
Claude Code 国内开发实战:从接入到多模型混合编排
Claude Code 是 Anthropic 推出的终端智能体,可自主读写文件、执行命令、迭代修复,非简单补全工具。本文详解国内落地难点(支付、网络、风控)与解决方案,以灵眸AI中转为例,实测支持官方协议、Prompt Cache透传、低延迟,并提供多模型编排策略,助开发者高效落地。(239字)
|
7月前
|
存储 监控 安全
RFID车辆识别技术精准提升通行效率
RFID车辆识别技术通过车载标签与读写器联动,实现车辆信息自动采集与管理,广泛应用于停车场、园区安防、物流运输等领域,提升通行效率与安全性,助力智慧交通与城市管理智能化升级。(238字)
|
11月前
|
机器学习/深度学习 算法 物联网
μNAS:面向微控制器的约束神经架构搜索——论文解读
μNAS是一种专为微控制器设计的神经架构搜索方法,旨在解决物联网设备中资源受限的挑战。通过多目标优化框架,μNAS能够在有限的内存和计算能力下,自动搜索出高效的神经网络结构。该方法结合了老化进化算法与贝叶斯优化,并引入结构化剪枝技术,实现模型压缩。实验表明,μNAS在多个数据集上均取得了优异的精度与资源使用平衡,显著优于现有方法,为边缘计算设备的智能化提供了可行路径。
709 129
|
7月前
|
数据采集 SQL 敏捷开发
2026年企业数据系统建设方案全解析:从规划到落地的选型指南
2026年,企业数据跃升为战略核心。本文深度解析瓴羊Dataphin——集统一建模、智能开发、全链路治理、资产服务化与合规内嵌于一体的AI时代数据中台引擎,提供从规划到落地的端到端选型与实施指南。(239字)
|
机器学习/深度学习 人工智能 自然语言处理
大模型的多样性:从语言处理到多模态智能
本文介绍了大模型在多个领域的应用,包括自然语言处理(如Transformer、GPT、BERT、T5)、计算机视觉(如CNN、ViT、GAN)、多模态智能(如CLIP、DALL-E)、语音识别与合成(如Wav2Vec、Tacotron)以及强化学习(如AlphaGo、PPO)。这些模型展现了卓越的性能,推动了人工智能技术的发展。
669 1
|
人工智能 语音技术 iOS开发
MiniCPM-o 2.6:面壁智能开源多模态大模型,仅8B参数量就能媲美GPT-4o,支持实时交互,在ipad等终端设备上运行
MiniCPM-o 2.6 是面壁智能开源的多模态大模型,支持视觉、语音和多模态直播,性能媲美GPT-4o,能够在端侧设备上高效运行。
1458 10
MiniCPM-o 2.6:面壁智能开源多模态大模型,仅8B参数量就能媲美GPT-4o,支持实时交互,在ipad等终端设备上运行
|
数据采集 存储 JavaScript
网页爬虫技术全解析:从基础到实战
在信息爆炸的时代,网页爬虫作为数据采集的重要工具,已成为数据科学家、研究人员和开发者不可或缺的技术。本文全面解析网页爬虫的基础概念、工作原理、技术栈与工具,以及实战案例,探讨其合法性与道德问题,分享爬虫设计与实现的详细步骤,介绍优化与维护的方法,应对反爬虫机制、动态内容加载等挑战,旨在帮助读者深入理解并合理运用网页爬虫技术。
|
监控 关系型数据库 MySQL
如何升级MySQL数据库?
【10月更文挑战第16天】如何升级MySQL数据库?