什么是JS的防抖?
防抖指的是触发事件后在n秒内函数只执行一次,若在n秒内再次触发事件则重新计算,函数不会重复执行。
在实际项目中我们可能会碰到搜索框会浪费大量的请求。比如我们有一个input,每次用户在搜索框输入的时候就触发onInput事件然后发送请求。
以下代码是未优化前

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title></head><body><input type="text" id="input" /></body><script>let input = document.getElementById("input");let num = 1;function sendRequest() {console.log(num++);}input.oninput=sendRequest;</script>
</html>


优化后

  let input = document.getElementById("input");let num = 1;function sendRequest() {console.log(num++);}// 我们想让用户输入完毕后过1s后再查询// 所以我们使用防抖,设置一个定时器,传入要执行的函数,延时的时间function debounce(fn, wait) {let timeout;return function () {if (timeout) clearTimeout(timeout);timeout = setTimeout(function () {fn.apply(this);}, wait);};}input.oninput = debounce(sendRequest, 2000);

如何利用JS防抖实现搜索框优化相关推荐

  1. html怎么创百度搜索框,JS实现百度搜索框

    本文实例为大家分享了JS实现百度搜索框的具体代码,供大家参考,具体内容如下 实现原理 向输入框动态输入时关键词,将当前关键词作为问号参数后面的值,因为要跨域使用百度的接口,所以通过 JSONP 跨域创 ...

  2. java搜索页面历史记录,使用JS location实现搜索框历史记录功能

    首先,来看下效果图(样式什么的就不必吐槽了哈) html代码 搜索记录: //用于保存记录信息 css代码 * { margin: 0; padding: 0; } input { border: 0 ...

  3. html+js仿百度搜索框,点击和回车跳转百度搜索

    html+js仿百度搜索框,点击和回车跳转百度搜索 代码 <!DOCTYPE html> <html lang="en"> <head>< ...

  4. html+css+js按键定位搜索框

    今日练习:js监听键盘事件,按下s键,即跳到搜索框,光标定位到搜索框里面. <!DOCTYPE html> <html lang="en"> <hea ...

  5. vue实现搜索框搜索新增_基于Vue.js实现简单搜索框

    主要用到的知识很简单,简单的vuejs2.0的知识就够了.源码用了.vue构建和ES6,用了webpack打包等等.我资历还浅,先用一个简单的.js的写. 先看效果 这里有两个组件,一个组件是logo ...

  6. JS模拟百度搜索框和选项卡

    练习1 实现搜索框内,输入相关数字,在下方显示相关内容,模拟百度搜索,详细代码如下: <!DOCTYPE html> <html lang="en">< ...

  7. JS模拟京东搜索框案例 模拟京东快递单号查询案例

    模拟京东搜索框案例 <!DOCTYPE html> <html lang="en"><head><meta charset="U ...

  8. Js实现百度搜索框提示功能(利用百度接口)

    这个功能的实现主要使用了jsonp跨域访问, 然后通过回调函数来将搜索到的关联内容显示出来 . JSONP(JSONwith Padding)是一个非官方的协议,它允许在服务器端集成Script ta ...

  9. vue实现搜索框记录搜索历史_使用JS location实现搜索框历史记录功能_苏颜_前端开发者...

    首先,来看下效果图(样式什么的就不必吐槽了哈) 搜索记录: //用于保存记录信息 * { margin: 0; padding: 0; } input { border: 0; vertical-al ...

最新文章

  1. linux字符串转大写_在 Linux 命令行中转换大小写
  2. 完美运营牛帮任务平台源码 仿悬赏猫支持封装APP
  3. 不好意思,00后黑客CEO登场了!
  4. 微信小程序开发教程(六)配置——app.json、page.json详解
  5. Java Swing/AWT API速查手册
  6. shell 字符串
  7. 荣耀系列到底算不算华为手机
  8. Leetcode 5
  9. 年中618会声会影好礼送不停!
  10. bgp状态idle什么原因_27-高级路由:BGP状态
  11. win32,使用PDFlib生成PDF文件
  12. 基于mint-ui的移动应用开发案例一(简介)
  13. STM8L USART串口调试
  14. 【UE4学习】01——UE4下载与安装
  15. 今天才知道我们的遭遇不是个例,是不是真有四十大盗呢?
  16. Qtablewidget使用QHeaderView设置表头
  17. Python多线程-手慢无的真相
  18. 前端微信签名验证工具_微信支付服务商签名验证无误,但是统一下单后服务器返回【签名错误】...
  19. RC滤波 电阻电容的损耗计算方法
  20. [MRCTF2020]套娃

热门文章

  1. 基于R语言revest包的网络爬虫对豆瓣网TOP250的电影特征的抓取
  2. Markdown 如何设置图片的宽度?
  3. 多普达C720W.刷机后重启后一直停留在开机界面的解决方法
  4. Redis事务Multi介绍
  5. 使用python一键登录博客
  6. GitKraken 小章鱼使用教程
  7. Filmigo视频剪辑VIP,这是一款多功能视频编辑、影片剪辑、图片美化、视频/音频制作 影音软件,功能强大!
  8. js的if判断,关于==的判断
  9. 通过注解切换数据源(更换数据库)同一个项目使用多个数据库(支持MySQL、Oracle同时使用)
  10. Typora页内跳转