用定時器實現(xiàn)
防抖:在某一時間段內(nèi),多次接到同一事件,只執(zhí)行最后一次觸發(fā)的事件钝荡。比如一個按鈕在1s內(nèi)連續(xù)觸發(fā)多次,而我們設(shè)置的時間間隔是1s舶衬,則只執(zhí)行最后一次的點擊事件埠通。
function fangdou(fn,dealy){
? ? var t = null;
? ? return function(){
? ? ? ? if(t){
? ? ? ? ? ? t = null;
? ? ? ? }
? ? ? ? t = setTimeout(function(){
? ? ? ? ? ? this.apply(fn,arguments);
? ? ? ? },dealy)
? ? }
}
節(jié)流:在某一時間段內(nèi),多次接到同一事件逛犹,執(zhí)行第一次觸發(fā)的事件锤窑。比如一個按鈕在1s內(nèi)連續(xù)觸發(fā)多次极景,而我們設(shè)置的時間間隔是1s抵卫,則只執(zhí)行第一次的點擊事件。
function jieliu(fn,dealy){
? ? var t = null;
? ? return function(fn,arguments){
? ? ? ? if(!t){
? ? ? ? ? ? t = setTimeout(function(){
? ? ? ? ? ? ? ? this.apply(fn,arguments);
? ? ? ? ? ? ? ? t = null;
? ? ? ? ? ? },dealy);
? ? ? ? }
? ? }
}