您好,登錄后才能下訂單哦!
小編給大家分享一下如何實現javascript函數節流,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
1、用時間戳判斷是否已到回調執行時間,記錄上次執行時間戳,然后每次觸發事件時執行回調,回調判斷當前時間戳距離上次執行時間戳的時間間隔是否為*s,如果是,則執行,并更新上次執行時間戳,如此循環。
var throttle = function(delay, action) { var last = 0; return function() { var curr = new Date(); if (curr - last > delay) { action.apply(this, arguments); last = curr; } } }
2、使用定時器,比如,當scroll事件剛觸發時,打印一個hello world ,然后設置一個1000ms的定時器,此后每次觸發scroll事件,觸發回調,如果已經存在定時器,則回調不執行方法,知道定時器出發,handler被清除,然后重新設置定時器。
var throttle = function(delay, action) { var timeout; var later = function () { timeout = setTimeout(function(){ clearTimeout(timeout); // 解除引用 timeout = null; }, delay); }; later(); if (!timeout) { action.apply(this, arguments); later(); } }
看完了這篇文章,相信你對“如何實現javascript函數節流”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。