很多地方都有这种关键字搜索,每次输入都调用一次接口,可能就比较浪费,因为用户还没输完。我们可以延迟调用接口,当用户输入了和上次一样的关键字 就不重新调用接口,这里对关键字做一个缓存,差不多就是这样
var timeout = 0;
var ajaxCache = {};//定义缓存对象
$('input').on('focus keyup',function(){
var inputValue = $(this).val();
clearTimeout(timeout);
timeout = setTimeout(function(){
if(ajaxCache[inputValue]!==undefined){
//显示自动提示框,给框里填关联词条的内容
}else{
$.ajax({
success:function(data){
//显示自动提示框,给框里填关联词条的内容
ajaxCache[inputValue]=[];
ajaxCache[inputValue]=data;//给缓存对象赋值
}
});
}
},200);
});
这篇文章写得很详细,可以参考搜索自动提示功能JS优化
评论
使用 GitHub 账号登录后即可评论