一些优化(即时搜索之函数去抖)

搜索框优化策略 函数去抖(debounce) 搜索框优化策略 函数去抖(debounce) 业务场景 我们在项目中往往会使用到很多搜索框,这些搜索框一般会用AutoComplete组件或者或者Select组件加showSearch属性来实现,然后把模糊搜索的逻辑写在onSearch里. 但是如果只这样写的话,就会产生如下效果,只要我们输入的值发生变化,就会发送请求.由于中文的特殊性,这里会产生很多的无用请求,如果响应较慢,甚至会引起页面卡顿.... 阅读详情

第一步,确定用哪个动作。实现输入框实时搜索:

input输入框的change事件,在输入框内容变化的时候不会触发change,要在input失去焦点的时候才会触发,当鼠标在其他地方点一下才会触发

$('input[name=myInput]').change(function() { ... });//change,失焦才触发,nono

用下面的方法会生效,input,注:IE下 用 onpropertychange

$("#input_id").on('input',function(e){ 
    alert('Changed!') 
});

第二步,优化,加一个延迟,因为频繁的发送并不好,网络请求次数过多

//手写一个函数去抖

function test() {
  console.log(11)
}

function debounce(method, context) {
  clearTimeout(method.tId);
  method.tId = setTimeout(function() {
    method.call(context)
  }, 500)
}
window.onresize = function() {
  debounce(test, window);
}

函数去抖(debounce)与函数节流(throttle),可以用lodash

  • debounce(func, wait, immediate):创建并返回函数的防反跳版本,将延迟函数的执行(真正的执行)在函数最后一次调用时刻的wait毫秒之后,对于必须在一些输入(多是一些用户操作)停止之后再执行的行为有帮助。将一个连续的调用归为一个!

  • throttle(func, wait, options):创建并返回一个像节流阀一样的函数,当重复调用函数的时候,最多每隔指定的wait毫秒调用一次该函数; 不允许方法在每wait ms间执行超过一次!

总结:

onpropertychange:DOM任何节点的属性发生变化时触发,包括js修改的属性。但是这是IE特有的一个事件;

oninput:仅仅在input的value值发生改变才会触发,鼠标键盘复制粘贴均可以触发,但是js修改其value值则不会触发。(chrome/safari/ff/opera/IE9+)

onchange:域的内容改变,并且失去焦点时触发(js改变其内容时不会触发)。

onkeyup:在键盘松开时触发。(如果用鼠标复制粘贴则不会触发)

总代码:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>即时搜索小优化</title>
	</head>
	<body>
		<input type="text" id="query" />
	</body>
	<script>
		window.onload = function() {
			var oQuery = document.getElementById("query");
			
			var timer = 0;
			oQuery.oninput = function() {
				clearTimeout(timer);
				timer = setTimeout(function() {
					Query();
				}, 250);
			}
 
			function Query() {
				console.log("查询数据");
			}
 
		}
	</script>
 
</html>

 

 

JavaScript-性能优化,函数节流(throttle)与函数去抖(debounce) 我在写一个类似百度搜索框的自动提示功能时候,使用了AJAX+keydown事件。调试时候我发现,当在搜索框中输入文字的时候,控制台在不停发送AJAX。这在本地服务器测试还好,如果我把它拿到运行环境,很可能出现提示功能卡顿,甚至没等提示出现用户就输入完毕的现象。毕竟大家现在打字都很快啊。于是我找到了一个新技能,函数节流 &amp; 函数去抖。 throttle 和 debounce 是解决请求和响应速度不匹 阅读详情

相关推荐

Vue.js页面中有多个input搜索框如何实现防抖操作

debounce简介 debounce是lodash工具库中的一个非常好用的函数。在实现搜索框对输入进行动态查询的时候,我们需要防止前端频繁的发送查询请求给后端,这个时候就需要用到debounce,它可以设置一个时间间隔,比如300ms,忽略300毫秒内的输入变化。debounce的详细介绍可以参考 这篇 文章。 debounce的高级用法 博主的页面中有3个搜索框,每个搜索框都需要动态响应用户的输入到后台去查询匹配的文章,如下图:   在Vue.js中如何实现多搜索框的debounce绑定,下面博主就带大家一起来看一下: 1. 监听输入变量 上图,可以看到我有3个输入框,每个输入框都需要设置

通过案例理解防抖与节流

说明:案例是通过jQuery来操作Dom元素的,其中防抖案例(使用到了jQuery中的ajax发起jsonp请求与art-template模板渲染,后续会持续更新):淘宝搜索检索,节流案例:跟随的天使案例;通过案例可以让你清晰直观的理解防抖与节流操作。 防抖:延迟n秒执行回调,若在n秒内被触发则重新计时,只执行最后一次操作 经典案例:淘宝搜索栏检索案例 预览效果图:通过关键字搜索会检索出相近的词组关键字 代码说明:主要讲解js代码如何实现防抖操作,下文提供源码 ...

qq_44996048的博客 526

大模型事件抽取学习——论文学习笔记《LLMs Learn Task Heuristics from Demonstrations:......》

本篇博客介绍一篇发表在2024 ACL main上的文章:《LLMs Learn Task Heuristics from Demonstrations: A Heuristic-Driven Prompting Strategy for Document-Level Event Argument Extraction》 方向:大模型事件抽取 本篇博客为个人阅读论文的总结与笔记,在这里进行简单的分享 论文链接:https://arxiv.org/abs/

weixin_53751318的博客 1852

vue实现防抖搜索--中文输入法即时查询

在实际项目中经常会用到input输入框来实现键入搜索,一般的步骤就是用户在输入后点击查询按钮进行查询调接口就完事了.但是有的时候会要求输入时就进行搜索了,那么此时会出现即使使用的中文输入法,也会输出单个的字母,如图所示。:如果你持续触发一个事件,防抖的作用是延迟执行,直到在一定时间内没有新的触发,再执行一次。这种技术通常用于处理连续的输入,例如用户在搜索框中输入时,只有在用户停止输入一段时间后才发送请求。简单来说,防抖是“一定时间内只触发一次”,而节流是“一定时间内只处理一次”。

w1060436872的博客 844

Cursor Agent模式下如何优雅切换conda环境运行Python脚本?3种实用方法实测

本文针对Cursor Agent模式下运行Python脚本时环境错配的痛点,实测了三种优雅切换conda环境的实用方法。通过Shell全局配置、项目级.cursorrc文件定制以及对话中直接指令,开发者可以确保AI助手在正确的虚拟环境中执行代码,从而提升开发效率和协作流畅度。

redis7keeper的博客 598

外部ADC之AD7949——14bit、8通道、250k

在实际项目中,仅靠单片机内部的ADC采样,很有可能达不到实际采样精度,这个时候就需要外接外部ADC芯片进行采样,这些外部ADC一般都是SPI接口或者是并口。单片机通过SPI接口或并口读写芯片内部寄存器,配置参考极性、采样通道、低通滤波器带宽、基准电压源、通道序列器等。本文主要对ADI家的14bit、8通道、250k的ADC7949做一个总结,这款ADC在实际项目中使用,采样精度达到要求,读取时序有点点绕,但是是一款十分常用的ADC芯片。就是价格不太友好哈哈,一块芯片快60。

cyaya6的博客 6715

Vue搜索防抖

Vue使用lodash搜索防抖

全栈工程师 445

长上下文技术的底层逻辑:Attention、压缩、缓存与跨页推理

如果把模型的参数视为“固化智能”,动态智能(Dynamic Intelligence)——模型不必依赖训练时的记忆,而是可以随时调用外部信息。这一点正在改变大模型的范式:Prompt 不再是输入,而是“操作系统事件”文档不再是知识,而是“模型的临时记忆”模型不再是一段神经网络,而是一个“具备阅读循环的推理引擎”当我们把上下文从 128K 拉到百万级,我们做的不是扩容,而是让模型第一次拥有阅读、回溯、定位、跨页分析的能力。这是一种新的智能。

aifs2025的博客 997

在vue中实现函数防抖

首先,你可以在你的Vue组件的<script>部分或者在一个单独的JavaScript文件中定义一个防抖函数。这个函数将接受一个需要防抖的函数和一个等待时间(毫秒)作为参数。// 防抖函数}, wait);

youhebuke225的博客 1078

手把手实现3D肺结节检测:基于Faster R-CNN的从CT处理、训练到部署的五步代码级实战与避坑指南

亲爱的同学,当你能完整实现“3D Faster R-CNN肺部结节检测系统”,你会发现医学影像AI的毕设课题充满挑战与成就感。我们围绕3D Faster R-CNN模型,从数据处理、模型搭建到实验验证,一步步带你打造一个能精准检测肺部结节的智能系统,让你的毕设既体现技术深度,又能为肺部疾病早期诊断贡献实用价值。是专为3D医学影像设计的目标检测模型,能在三维CT数据中自动定位、识别肺部结节——这一课题兼具“临床价值”和“技术挑战性”,是毕设的优质选择,能充分展现你的工程能力和科研敏感度。

LXY_LOVE36的博客 308

通过理解 sk_buff 深入掌握 Linux 内核自定义协议族的开发实现

在。

数字人生 458

防抖和节流

防抖和节流

weixin_53024314的博客 610

Simulink仿真状态空间中状态变量时域响应

起因 今天老师留了一道关于状态空间变量响应的题,于是想用simulink仿真,一开始使用state-space模块,但是发现它只能输出y,没办法显示状态变量的变化情况。然而状态变量之间的关系都可以表示为一阶微分方程组,因此我们考虑在Simulink中搭建微分方程组来求解这个问题。 微分方程组 x1˙=x2x2˙=−4x1−5x2+1(1)\dot{x_1}=x_2\\ \dot{x_2}=-4x_...

ZYunfei的博客 7455

函数去抖(debounce)与函数节流(throttle)库

通过本文的学习,你应该已经掌握了如何使用函数去抖和函数节流来优化你的前端应用程序。这些技术不仅能显著提升应用程序的性能,还能带来更好的用户体验。在实际开发中,记得灵活运用这些技巧,并结合实际情况做出最佳选择。欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。DTcode7的博客首页。一个做过前端开发的产品经理,经历过睿智产品的折磨导致脱发之后,励志要翻身农奴把歌唱,

一个做过前端开发的产品经理,经历过睿智产品的折磨导致脱发之后,励志要翻身"农奴"把歌唱,一边打入敌人内部一边持续提升自己,为我们广大开发同胞谋福祉,坚决抵制睿智产品折磨我们码农兄弟! 1214

COSMO-RS理论:流体相热力学预测的核心模型与技术突破

摘要:COSMO-RS模型通过量子化学计算分子表面电荷分布,实现了从微观量子尺度到宏观化工过程的热力学预测。该模型基于介电连续介质理论,将分子表面片段化处理,通过σ-剖面描述电荷分布,并计算片段间的静电失配能和氢键能。其核心算法通过自洽化学势方程求解活度系数,克服了传统模型依赖实验参数的局限。随着技术进步,模型引入了高阶描述符和色散力修正,提升了预测精度。在药物研发、化工分离等领域广泛应用,但仍存在对长程有序结构预测不足等局限性。该模型为复杂体系的热力学性质预测提供了重要理论工具。

ASKCOS博客 975

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

前端优化之节流和去抖

前端优化之节流和防抖节流使用节流对比如下使用场景(当发送http请求)去抖使用去抖对比如下使用场景 说到前端优化,如果你不知道节流和去抖 那可能真不能说你了解前端优化,但是会节流和去抖,并不能代表你前端优化你很了解,因为前端优化包括方方面面啊。。。 节流 <input type="text" id="ipt"> <!-- 开源节流 --> <script> // 现实中节流 : 减少流通,节省开支 ; // 程序中节流 : 减少程序的运行次数;

牛先森家的博客 1188

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

JavaScript 中的函数去抖 (Debouncing):优化性能与响应

本文介绍了JavaScript中函数去抖(Debouncing)技术,用于优化高频触发事件的性能问题。函数去抖通过延迟执行和重置计时器的机制,确保事件停止触发指定时间后才执行函数处理。文章详细解析了去抖的工作原理,提供基础实现代码并逐行解释,涵盖闭包、this上下文和参数传递等关键概念。同时对比了去抖与节流(Throttling)的区别,列举了搜索框输入、窗口调整等典型应用场景,并给出最佳实践建议。该技术能有效解决频繁DOM操作导致的性能下降、用户体验不佳和服务器负载过重等问题,是Web开发中重要的性能优化

weixin_42107409的博客 1180

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

碰一碰交互新玩法:抖去推系统如何实现短视频流量的即时转化

最近在做线下商家数字化转型项目时,发现一个普遍痛点:短视频平台引流过来的用户,往往卡在“从内容到行动”的最后一步——用户刷到有趣的门店视频,想了解优惠或导航到店,却要手动搜索店名、点击链接,过程繁琐导致大量潜在客户流失。而抖去推新推出的“碰一碰系统”,正好解决了这个“即时转化”难题。作为参与过3个碰一碰落地项目的技术,今天就从技术实现、场景应用和实操优化三个维度,拆解抖去推碰一碰系统的核心逻辑,干货内容含代码示例和踩坑经验,适合技术开发和运营负责人参考。

Z13283717415的博客 911

LaMa图像修复入门:克隆后一条命令修复整批图片

LaMa是基于傅里叶卷积的大掩码图像修复模型(WACV 2022),解决大面积缺失区域"糊、断裂"的问题。读完这篇,你能独立完成环境搭建、批量图片修复和修复质量量化评估的完整流程。 ## 🎯 项目定位:为什么大掩码修复选LaMa 和传统修复方法的区别在于:LaMa不只在边界处做局部涂抹,而是用傅里叶特征卷积(FFC)直接在频域建模长程依赖,让掩码两侧的纹理自然衔接。两个值得记住的特性: -

gitblog_00351的博客 343

函数节流和函数去抖

参考网站: https://www.cnblogs.com/caizhenbo/p/6378202.html 在日常的开发过程中,会有这样的场景,事件被频繁的触发,比如说我们的在输入的时候监控keypress事件,在页面滚动的时候监控页面的滚动事件。比如我们监控页面的resize事件,拉动窗口改变大小的时候,resize事件被频繁的执行 事件处理函数简单的话还好,但是如果是复杂的dom操...

juse__we的博客 249

学习underscore源码之函数去抖、节流

学习函数去抖、函数节流如何实现以及两者区别

zxl1990_ok的博客 427

three.js PointLightShadow 深度解析:点光源全方位阴影的配置、六面深度贴图与渲染原理

`PointLightShadow` 是 three.js 中 `PointLight`(点光源)专用的阴影配置对象,负责管理点光源在世界中全方向投射阴影所需的内部相机、深度贴图尺寸以及各类阴影采样参数。本文以 [PointLightShadow 官方文档页](https://link.gitcode.com/i/00a29d5869f29d6ff2d6c849e3956d89) 为骨架,结合当前

gitblog_00033的博客 510

竞品分析:抖音搜索VS快手搜索

快手男性、女性用户占比为58.3%、41.7%,与之相比,2022年两款APP的用户性别分布趋同,且与目前中国人口性别比例相吻合,这说明两个平台内容的包容性越来越强,用户在两款APP的选择上几乎不受性别影响。对于平台而言,通过搜索可以更精准的把握用户需求,提高用户留存率,从而促进转化。短视频平台、社交平台、电商平台、新闻资讯平台、长视频平台均为内容型平台,他们按照各自的规则制作内容,形成特有的内容生态体系,基于此的搜索,则为内容生态搜索,在用户的所有搜索行为中,有77.4%的搜索会发生在内容型平台。

jane9872的博客 4745

函数去抖和函数节流

为什么会有会出现debounce和throttle 以下场景往往由于事件频繁被触发,而重复执行DOM操作、资源加载等重行为、会导致UI停顿甚至浏览器崩溃。 1、window对象的resize、scroll和拖拽时的mousemove事件 2、射击游戏中的mousedown、keydown事件 3、类似百度搜索提示keyup事件 问题分析 DOM操作比非DOM交互需要更多的内存和CPU时间,连续尝试进行过多的DOM相关操作可能会导致浏览器挂起,有时候甚至会崩溃。 实际上对于windo...

hsany330的专栏 215

掌握搜索领域URL去重,优化搜索流程

在搜索领域中,大量的URL会被搜索引擎抓取。然而,这些URL中存在很多重复的情况,如果不进行去重处理,会浪费大量的存储资源和计算资源,还会影响搜索结果的准确性和搜索效率。本文的目的就是介绍如何在搜索领域进行URL去重,以优化搜索流程。范围涵盖了URL去重的核心概念、算法原理、实际应用等方面。本文首先会引入一个有趣的故事,引出URL去重的概念。接着解释核心概念,包括URL、去重算法等,并说明它们之间的关系。然后详细介绍核心算法原理和具体操作步骤,给出数学模型和公式。通过项目实战展示代码实现和详细解读。

专注搜索引擎技术 1279

抖音SEO,抖音搜索关键词优化,排名优化

抖音之所以能如此火爆,一方面是因为他强大内容创造力传播力与牢牢吸引用户眼球的算法,同时抖音还有强大的带货能力,其直播与电商的融合也在快速抢占网络消费的市场,此外还有不少用户已经不仅仅把抖音当做一个纯视频平台,他们会通过抖音的搜索功能搜索想要了解的问题或事情。搜索的重点结果就是关键词,因此一定要将与所要推广的内容可覆盖的关键词做合理的布局,当关键词布局得越多,精准性也将随之提高。简单来说,抖音短视频搜索排名即是抖音短视频用户在抖音的搜索框内填写主要关键词,按照排序呈现出抖音短视频的搜索信息。

Bqx666888的博客 1747
上一篇: 高性能网站建设指南
下一篇: react-router 按需加载
Gytha_1
博客等级 码龄9年 9粉丝 50原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值