节流 :防止恶意使用脚本使按钮被每秒多次触发按钮事件
<button id="oBtn">click</button><div id="oDiv">0</div
// 节流var oDiv = document.getElementById("oDiv");var oBtn = document.getElementById("oBtn");// 节流函数function throttle(handler,wait){var lastTime = 0;;return function(e){//此处的this指向oBtnvar nowTime = new Date().getTime();if( nowTime - lastTime > wait){handler.apply(this,arguments)lastTime= nowTime;}}}// 事件处理函数function buy (e){oDiv.innerText = parseInt(oDiv.innerText)+1;}oBtn.onclick = throttle(buy,1000)
防抖
当输入输入框输入文字时,不能用户输入一个字符就获取,当他输入完后后隔几秒获取
<input type="text" id="inp">
var inp = document.getElementById('inp');// 防抖函数function debouce (handle,delay){var timer = null;return function(){var self = this, arg = arguments;clearTimeout(timer);timer = setTimeout(function(){handle.apply(self,arg);},delay)}}// 事件处理函数function ajax(e){console.log(e,this.value);}inp.oninput = debouce(ajax,2000);
