今天写代码的时候,遇到一个问题,就是页面上的任何操作改动时,都会触发一个函数去调用接口以获取最新的数据,有时候操作太频繁,导致一直调用函数(接口请求),给服务器造成很大的压力,最后找到了解决办法
var t = null;
function getData(){
//防抖
clearTimeout(t);
t= setTimeout(function(){
//这里面要执行的操作
},2000);
}
在这个函数里面,函数执行之前先清除上一次的定时器,即上一次定时器里面的内容就不会继续执行了,如果是最后一次执行(即2s内没有清除定时器),那么定时器里面的内容就会执行
这样子就可以保证始终执行最后一次,减少调用