web前端中有一些需要与后台一起完成的用户体验,比如输入提示,下拉搜索等,监听键盘事件或者websocket流等不断的通过ajax向后台发送请求,获取详情的数据,而页面中的oninput,mousemove之类的事件是处罚很频繁的,有时候我们需要延长发请求的间隔来节省服务器资源,并且还不丢失用户体验度。这就需要一种解决方案。
let arr=[]; //输入框 dom=document.getElementById("myinput"); dom.addEventListener("input",function(){ arr.push(this.value); }); function queryTip(){ if(arr.length>0){ let key=arr[arr.length-1]; arr=[]; $.post(".....",{key:key},function(res){ //请求回来的处理。 if(arr.length>0){ queryTip(); }else{ setTimeout(queryTip,2000); } },"json"); }else{ setTimeout(queryTip,2000); } } queryTip();