JS 手寫節流

2021-10-20 01:52:43 字數 1114 閱讀 6486

<

!doctype html>

"en"

>

"utf-8"

>

"x-ua-compatible" content=

"ie=edge"

>

"viewport" content=

"width=device-width, initial-scale=1.0"

>

document<

/title>

#box

<

/style>

<

/head>

"box"

>box<

/div>

var obox = document.

getelementbyid

("box");

/* // 基礎思路

var lasttime = 0;

obox.onmousemove = function ()

//如果當前看門狗放行,則把本次執行的時間 賦值給lasttime 方便下次使用

lasttime = nowtime;

//下邊都是我們的邏輯**

console.log("邏輯**");

} */

//通用的節流函式(一段時間內只觸發第一次)

//把真正的邏輯**的事件函式提煉出來

function

move

(e) obox.onmousemove =

throttle

(move,

100)

;function

throttle

(fn, time)

//在這個函式中 this是真正指向事件呼叫者box的

//當間隔時間到達time的時候 才呼叫fn

fn.call

(this

, arguments[0]

)//並且把當前時間變成上一次的時間

lasttime = nowtime;}}

<

/script>

<

/body>

<

/html>

面試之手寫防抖節流

關注前端體驗或效能優化的應該有聽說過防抖,節流。那麼,什麼是防抖節流呢?概念在短時間內多次觸發同乙個函式,只執行最後一次。舉例 搭乘公交車的時候,陸續有不同的乘客上車,但師傅只會在最後乙個乘客上車後才關門。效果演示 防抖前防抖後 應用場景 實現簡單版本 function debounce fn,wa...

js事件節流

js事件節流是乙個非常簡單的功能,但是前端開發人員在實際專案中很少考慮到該功能,主要原因可能是專案不大,或者並沒有出現卡頓現象,導致開發人員不會想到使用事件節流去優化 其實使用時間節流是乙個非常好的習慣,它本身也非常簡單,這裡我們說一下事件節流。怎麼實現事件節流,非常簡單,就是在自己設定的時間內,上...

手寫防抖throttle和節流debounce

手寫節流throttle 節流和防抖的區別 若頁面中有乙個輸入框,我想根據輸入框的內容變化實時做出變化。那我該怎麼做呢?那麼從效能優化的角度要怎麼做呢?當使用者輸入結束或者暫停時,才會觸發 change 事件 這就是防抖了 text id input1 const input1 document.g...