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://chinadenli.net/article2/decjoc.html
成都網站建設公司_創(chuàng)新互聯,為您提供網站制作、移動網站建設、做網站、網站導航、網站收錄、虛擬主機
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯