首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JavaScript实现模糊推荐input框(类似搜索框)

如何用JS实现一个类似搜索框输入框呢,再填充完失去焦点时,自动填充配置项,最终效果如下图: 实现很简单,但是易用性会上升一大截,需要用到有jquery-uiautocomplete,jquery...keyup事件,以及ajax与服务端交互。...事件 3、ajax与后端交互 简单来说: 1、文本输入每次键入,触发一个keyup事件; 2、事件处理方式是向后端请求模糊推荐项items,这里返回数据结果是: { "errno": 0;..."pathN"] } 3、autocomplete自动填充hidden输入框,其余事情jquery-ui会为你处理好; 4、当你点选完成,或者是输入完成后,path框失去焦点(blur事件...)时候,会后端请求数据,自动填充好各个输入框add_field。

4.4K90
您找到你想要的搜索结果了吗?
是的
没有找到

JS基础知识总结(五):防抖和节流

作者:前端林子 https://cloud.tencent.com/developer/article/1380512 引入 首先举一个例子: 模拟在输入输入后做ajax查询请求,没有加入防抖和节流效果...> 效果: 在输入框里输入一个,就会触发一次“ajax请求”(此处是console)。...1.2 应用场景 (1) 用户在输入框中连续输入一串字符后,只会在输入完后去执行最后一次查询ajax请求,这样可以有效减少请求次数,节约请求资源; (2) windowresize、scroll事件...这就会导致每一次高频事件都会取消前一次超时调用,导致事件处理程序不能被触发; 2.只有当高频事件停止,最后一次事件触发超时调用才能在delay时间后执行; 效果: 加入防抖后,当持续在输入框里输入时...,会安装代码中设定,每1秒执行一次ajax请求 加入节流 3.

89220

详谈js防抖和节流

引入 首先举一个例子: 模拟在输入输入后做ajax查询请求,没有加入防抖和节流效果,这里附上完整可执行代码: 效果:在输入框里输入一个,就会触发一次“ajax请求”(此处是console)。...1.2 应用场景 (1) 用户在输入框中连续输入一串字符后,只会在输入完后去执行最后一次查询ajax请求,这样可以有效减少请求次数,节约请求资源; (2) windowresize、scroll事件...这就会导致每一次高频事件都会取消前一次超时调用,导致事件处理程序不能被触发; 2.只有当高频事件停止,最后一次事件触发超时调用才能在delay时间后执行; 效果: 加入防抖后,当持续在输入框里输入时...,会安装代码中设定,每1秒执行一次ajax请求 加入节流.png 3.

5.5K391

jQuery 教程

() 添加/触发 keypress 事件 keyup() 添加/触发 keyup 事件 live() 在版本 1.9 中被移除。...通过 jQuery AJAX 方法,您能够使用 HTTP Get 和 HTTP Post 远程服务器上请求文本、HTML、XML 或 JSON – 同时您能够把这些外部数据直接载入网页被选元素中。... HTTP GET 请求服务器加载数据 $.getJSON() 使用 HTTP GET 请求服务器加载 JSON 编码数据 $.getScript() 使用 AJAX HTTP GET 请求服务器加载并执行...JavaScript $.param() 创建数组或对象序列化表示形式(可用于 AJAX 请求 URL 查询字符串) $.post() 使用 AJAX HTTP POST 请求服务器加载数据...() 规定第一个 AJAX 请求开始时运行函数 ajaxStop() 规定所有的 AJAX 请求完成时运行函数 ajaxSuccess() 规定 AJAX 请求成功完成时运行函数 load() 服务器加载数据

17K20

js函数节流、函数防抖及其使用场景

函数防抖:在事件被触发n秒后再执行回调,如果在这n秒内又被触发,则重新计时 来看一下下面这个例子 //模拟一段ajax请求 function ajax(content) { console.log(...('keyup', function (e) { ajax(e.target.value) }) 上面的代码执行结果就是,我们只要按下键盘,就会触发这次ajax请求。...最终效果就是当你在频繁输入时,并不会发送请求,只有当你在指定间隔内没有输入时,才会执行函数。如果停止输入但是在指定间隔内又输入,会重新触发计时。...上述代码达到效果就是:我们在不断输入时,ajax会按照我们设定时间,每1s执行一次,效果有点类似于我们玩魂斗罗这种游戏时候,当点下开枪按钮时,子弹会匀速打出,停止按键后,会停止射击。...应用场景 函数防抖: 1. search搜索联想,用户在不断输入值时,用防抖来节约请求资源 2. window触发resize时候,不断调整浏览器窗口大小会不断触发这个事件,用防抖来让其只触发一次

84120

js实现函数防抖与节流

js函数防抖与节流区别: 函数防抖是某一段时间内只执行一次,而函数节流是间隔时间执行。...个人踩坑 1、通过理解函数防抖与函数节流概念后,使用闭包实现函数防抖和节流,没有考虑到对于节流,如果用户在下一次请求之前已输入完毕,但是此时不会再进行请求,则会导致最后输入文字获取其他事件改变不发请求...,即漏请求,所以需要加一个setTimeout兜底函数,且在每次准备请求时候,设一个flag,即是否已经发送请求,如果走了正常周期发送请求,改为true,否则即为false,走setTimout,让setTimeout...比剩余事件略长一些,优先走节流定时器请求; 2、如果使用箭头函数,则不需要保存this。...} } } let throttleFn = throttle(ajax3,5000) elem3.addEventListener('keyup',function (e)

1.3K10

jQuery

| keyup | keypress | mouseup | mousemove | mouseout | mouseover | 3.jQuery事件事件绑定 派发事件: jq对象.事件名称(...大弟弟b | a~b:选择a所有b弟弟| 属性选择器: [属性名] 获取元素上带有该属性名元素对象 [属性名='值'] 获取元素上带有该属性名且值为''元素对象 属性选择器一般和标签选择器联合使用...function: 完成校验逻辑,满足返回true,不满足返回false(默认) val: 输入框中值 ele: 被校验输入框对象(js对象) param: 校验器值...八:Ajax&jQuery Ajax 1.原生ajax(javaScript): 1.创建ajax引擎(已被浏览器内置) 2.编写onreadystatechange函数 3.确定请求方式和路径...ajax: 1.$.post(url,[params],fn,[type]) |发送post异步请求 url:请求路径 params:请求参数 格式1:字符串 key1=value1&

4.3K20

Ajax进阶】跨域和JSONP学习

什么是同源策略   跨域     什么是跨域     浏览器对跨域请求拦截     如何实现跨域数据请求 JSONP   JSONP实现原理   自己实现一个简单JSONP   JSONP缺点...MDN官方给定概念:同源策略限制了同一个源加载文档或脚本如何与来自另一个源资源进行交互,这是一个用于隔离潜在恶意文件重要安全机制。...浏览器对跨域请求拦截     如何实现跨域数据请求 现如今,实现跨域数据请求,最主要两种解决方案,分别是JSONP和CORS。 JSONP:出现早,兼容性好。...(kw) }, 500) } // 为输入框绑定 keyup 事件 $('#ipt').on('keyup', function () {...防抖应用场景 用户在输入框中连续输入一串字符时,可以通过防抖策略,只在输入完后,才执行查询请求,这样可以有效减少请求次数,节约请求资源;   实现防抖   什么是节流 节流策略,顾名思义,可以减少一段时间内事件触发频率

1.2K30

jQuery进阶前言

5、focusin()和focusout()事件: focusin()是获取焦点事件。比如有一个输入框,要在该输入输入文字,我们首先得用鼠标点一下该输入框,这就叫获取焦点。...三、键盘事件: 1、keydown()、keyup()和keypress(): keydown类似于mousedown,按下键盘时事件keyup就类似于mouseup,按下键盘再松开那个时候触发事件...比如一般网站登录时候要输验证码,当你输完验证码,就会立即提示验证码正确还是错误,而不需要点击“登录”按钮后再去判断,这就用到了Ajax。接下来就看看如何使用。...6、$.ajax(): 使用ajax()方法是最底层、功能最强大请求服务器数据方法,它不仅可以获取服务器返回数据,还能向服务器发送请求并传递数值,也是最常用。...它调用格式如下: $.ajax([settings]) 其中参数settings为发送ajax请求配置对象,在该对象中,url表示服务器请求路径,data为请求时传递数据,dataType

2.4K20

7分钟理解JS节流、防抖及使用场景前言概念和例子总结拓展

可以看到,我们只要按下键盘,就会触发这次ajax请求。不仅从资源上来说是很浪费行为,而且实际应用中,用户也是输出完整字符后,才会请求。...可以看到,我们加入了防抖以后,当你在频繁输入时,并不会发送请求,只有当你在指定间隔内没有输入时,才会执行函数。如果停止输入但是在指定间隔内又输入,会重新触发计时。 再看一个?...可以看到,我们在不断输入时,ajax会按照我们设定时间,每1s执行一次。 结合刚刚biubiubiu?...结合应用场景 debounce search搜索联想,用户在不断输入值时,用防抖来节约请求资源。...window触发resize时候,不断调整浏览器窗口大小会不断触发这个事件,用防抖来让其只触发一次 throttle 鼠标不断点击触发,mousedown(单位时间内只触发一次) 监听滚动事件

85330

浅谈一下如何避免用户多次点击造成多次请求

一、有效地在web客户端采用一定机制去防止重复点击提交,将大大减轻服务器端压力 浅谈一下如何避免用户多次点击造成多次请求 一、有效地在web客户端采用一定机制去防止重复点击提交,将大大减轻服务器端压力...1> 定义标志位:  点击触发请求后,标志位为false量;请求(或者包括请求后具体业务流程处理)后,标志位为true量。通过标志位来判断用户点击是否具备应有的响应。...2> 卸载及重载绑定事件: 点击触发请求后,卸载点击事件请求(或者包括请求后具体业务流程处理)后,重新载入绑定事件。...二、请求频度 相信大家碰到过这样业务,我们允许它重复点击(或者其他用户事件),但是不允许在一定时间内超过次数XX次。这用户友好体验及服务器承受压力选取了一个折中方案。...//如果键盘敲击速度太快,小于100毫秒的话就不会向后台发请求,但是最后总会进行一次请求

1.4K40

jsonp跨域实现几种方式

ok,了解了jsonp原理和应用后,我们看看百度智能提示是如何 在chrome调试窗口下看看百度搜索发出请求。...当输入关键字“a”,请求如图: 用firebug看下请求参数,如图: 请求方式:get请求 请求参数:wd明显是要搜索关键字;cb是请求回来处理函数,名字可以随便给;t是时间戳,防止缓存;...ajax请求并拿回数据是这样: ok,测试可用,的确可以拿到关键字提示。...最关键来了,现在开始写完整智能提示并配合鼠标和键盘对候选词操作(源码里index.html页面),实现如下功能: 即时监控字母键和数字键,按下就发ajax请求(也可以设置延迟发请求,源码里有);...监控鼠标和键盘输入js(autoComplete.js 源码里有更详细注释): var timeoutId; //延迟请求服务器 var highlightindex = -1; //高亮标记

3.4K20

挥别web移动端开发差异和经典坑

touch: 使用具有回弹效果滚动, 当手指触摸屏上移开,内容会继续保持一段时间滚动效果。继续滚动速度和持续时间和滚动手势强烈程度成正比。同时也会创建一个新堆栈上下文。...、keydown事件,在安卓手机浏览器中没有问题,但是在 ios 手机浏览器中用输入输入之后,并未立刻相应 keyup、keydown 事件 非直接文字输入(中文输入法)下,进行判断限制,仅在选词后触发...input事件 描述:在使用oninput监控输入框内容变化时,我们期望仅在value值变化时,才触发oninput事件,而在中文输入下,未选词时按键也会触发oninput事件。...URL跳转会出现空白 描述:安卓手机,在微信授权回调函数中进行跳转至URL不能带有#,但#号可放置在结尾。...经排查,原因如下: 原来是缓存导致,因其#号后参数等都被忽略,那么#以前URL在授权前和授权后一致,其不再发送网页请求去重新获取而是直接读取缓存。

2.8K20
领券