javascript實現節(jié)流和防抖函數?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

1.節(jié)流函數throttle
// 節(jié)流方案1,每delay的時間執(zhí)行一次,通過開關控制
function throttle(fn, delay, ctx) {
let isAvail = true
return function () {
let args = arguments // 開關打開時,執(zhí)行任務
if (isAvail) {
fn.apply(ctx, args)
isAvail = false // delay時間之后,任務開關打開
setTimeout(function () { isAvail = true }, delay)
}
}
}
// 節(jié)流方案2,通過計算開始和結束時間
function throttle(fn,delay){
// 記錄上一次函數出發(fā)的時間
var lastTime = 0
return function(){
// 記錄當前函數觸發(fā)的時間
var nowTime = new Date().getTime()
// 當當前時間減去上一次執(zhí)行時間大于這個指定間隔時間才讓他觸發(fā)這個函數
if(nowTime - lastTime > delay){
// 綁定this指向
fn.call(this)
//同步時間
lastTime = nowTime
}
}
}
新聞名稱:javascript實現節(jié)流和防抖函數-創(chuàng)新互聯
本文來源:http://www.chinadenli.net/article2/decjoc.html
成都網站建設公司_創(chuàng)新互聯,為您提供網站制作、移動網站建設、做網站、網站導航、網站收錄、虛擬主機
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯