节流函数的实现,一次面试题遇到的编程题
生活随笔
收集整理的這篇文章主要介紹了
节流函数的实现,一次面试题遇到的编程题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在日常開發中有很多場景我們都需要用到節流函數和防抖函數,比如:實現輸入框的模糊查詢因為需要輪詢ajax,影響瀏覽器性能,所以需要用到節流函數;實現手機號、姓名之類的的驗證,往往我們只需要驗證一次,這個時候我們就需要用到防抖函數;防抖函數的實現
節流函數
顧名思義,就是節省流量節省內存性能的一種函數,可以理解為是一種性能優化方案;
舉個例子:一個水龍頭一直在滴水,可能一次性會滴很多水,但是我們想控制它的頻率 ,讓它每1000毫秒滴一滴水,這個時候我們就可以用到節流函數來進行控制(簡單可以理解為類似于周期性定時器)
?
//首先定義一個全局變量 var canRun = true; //當瀏覽器窗口大小發生變化也就是重新計算窗口大小的時候觸發 window.onresize = function(){ // 取反,canRun為false的情況下 if(!canRun){ //直接return,后面的代碼不執行return } //走到這來就是canRun為true的情況,然后進行賦值為false canRun = false//設置一個定時器進行輪詢操作 setTimeout( function () { //這是要做的事情console.log("函數節流") //最后記得重新賦值true繼續讓他取反canRun = true //每隔1000毫秒也就是1秒鐘就執行一次}, 1000) }?防抖函數和節流函數都是用來提升性能優化及用戶體驗的一種方案,節流函數會規律性的執行多次;
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的节流函数的实现,一次面试题遇到的编程题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 防抖函数的实现
- 下一篇: 服务器ping不通的解决办法之阿里云云服