赞
踩
节流的实现思路:每次触发事件时都取消之前的延时调用方法:
var timer = null
function input1 () {
clearTimeout(timer)
timer = setTimeout(function () {
// ajax()
console.log(document.getElementById('input1').value)
}, 500)
}
防抖的实现思路:每次触发事件时都判断当前是否有等待执行的延时函数:
var flg = false
function input2 () {
if (flg) {
return false
}
flg = true
setTimeout(function () {
// ajax()
console.log(document.getElementById('input2').value)
flg = false
}, 500)
}
<!DOCTYPE html> <html lang="en" dir="ltr"> <head> <meta charset="utf-8"> <title></title> </head> <body> <div class=""> 抖动示例:<input id='input1' type="text" name="" value="" onkeydown="input1()"> </div> <div class=""> 节流示例:<input id='input2' type="text" name="" value="" onkeydown="input2()"> </div> </body> <script> // 防抖 var timer = null function input1 () { clearTimeout(timer) timer = setTimeout(function () { // ajax() console.log(document.getElementById('input1').value) }, 500) } // 节流 var flg = false function input2 () { if (flg) { return false } flg = true setTimeout(function () { // ajax() console.log(document.getElementById('input2').value) flg = false }, 500) } </script> </html>
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。