JS的節流閥


對於節流閥的理解,舉個不恰當的例子,使用節流閥就像在一個賓館睡覺,一間屋子只能睡一個人。

第一步,進入房間,默認門是開着的(flag=true),所以可以直接進來睡覺;

第二步,為了確保安全,需要將門關上(flag=false);

第三步,睡覺結束(一個事件完成),需要離開讓下一個進來睡覺,將門打開(flag=true)。

這樣如此反復,確保在睡覺這件事情上,一次只能睡一個人。

代碼如下:

 1   <button>按鈕</button>
 2   <script>
 3     var btn = document.querySelector('button');
 4     var flag = true;
 5     var timer;
 6     btn.onclick = function () {
 7       clearTimeout(timer)//延時器可以寫在if里面,也可以寫在外面,如果寫在外面,必須清理延時器,否則會創建多個延時器,導致flag很快為true,就一直輸出1;如果寫在里面,想要執行定時器,必須通過if語句,確保了定時器的安全
 8       if (flag == true) {
 9         flag = false;
10         console.log(1);
11       }
12       timer = setTimeout(function () {
13         flag = true;
14       }, 2000)
15     }
16   </script>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM