场景
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();