92国产精品视频_亚洲a级在线观看_国产精品电影观看_国产精品免费观看在线_精品伊人久久97_亚洲人成在线观_尤物九九久久国产精品的特点_成人激情在线播放_成人黄色大片在线免费观看_亚洲成人精品久久久_久久免费视频在线观看_久久精品国产一区_国产一区二区三区18_亚洲欧美中文字幕在线一区_日韩美女中文字幕_日韩视频免费在线

js_防抖與節流(閉包的使用)

2021-10-13    前端達人

js的防抖與節流

防抖事件

定義:持續觸發事件,一定時間內沒有觸發事件,事件處理函數只會執行一次,
當設定的時間內觸發過一次事件后會重新開始延時。
例:輸入框的事件(2s顯示內容,不是實時刷新顯示內容),對比輸入框的內容事件。
實時刷新的效果

 <div class="container"> <div class="left"> <p>實時刷新顯示內容</p> <input type="text" id="leftInput" /> <div class='textDiv' id="textShow"></div> </div> <div class="right"></div> </div> <script> var inputDom=document.getElementById('leftInput'); inputDom.addEventListener('keyup',function(e){ var textDom=document.getElementById('textShow'); console.log(e.target.value); textDom.innerText=e.target.value; }) </script>  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

輸入123456會依次打印123456的金字塔
在這里插入圖片描述

防抖(1s內顯示輸入內容)

 <div class="container"> <div class="left"> <p>防抖(1s內顯示輸入內容)</p> <input type="text" id="leftInput" /> <div class='textDiv' id="textShow"></div> </div> <div class="right"></div> </div> <script> // 防抖 var inputDom = document.getElementById('leftInput'); // 函數柯里化 function debounce(delay, callback) { let timer return function(value) { //閉包內存泄漏 clearTimeout(timer) timer = setTimeout(function() { //執行 callback(value) }, delay) } } // 顯示內容的函數 function showText(value) { var textDom = document.getElementById('textShow'); console.log(value) textDom.innerText = value; } var debounceFunc = debounce(1000, showText); inputDom.addEventListener('keyup', function(e) { let value = e.target.value debounceFunc(value) }) </script>  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36

1s內輸入123456只會打印一次123456
在這里插入圖片描述

節流事件

定義:一段時間直只調用一次事件處理函數
實際用例:提交事件 、游戲的技能cd(在游戲cd中點擊n次都不會發動技能)

// 節流
            var skillDom = document.getElementById('skillTriger');
            function throttle(wait,callback) {
                let timeOut;
                return function(value) {
                    if (!timeOut) {
                        timeOut = setTimeout(function() {
                            callback(value);
                            //執行一次,時間段內的都不知執行
                            timeOut = null;
                        }, wait)
                    }
                }
            }
            function skillEvent(value){
                var textDom = document.getElementById('skillEventId');
                console.log(value)
                ++count
                textDom.innerText = value+count;
            }
            var skillAc=throttle(3000,skillEvent)
            var count=0
            skillDom.addEventListener('click', function(e) {
                let value = e.target.value
                skillAc(value)
            })  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

在這里插入圖片描述

完整的html

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>防抖與節流</title> </head> <style> * { margin: 0; padding: 0; } .container { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 600px; height: 400px; background: #262626; display: flex; } .left { position: relative; width: 50%; height: 100%; background: #00cec9; box-sizing: border-box; overflow: hidden; } .right { position: relative; width: 50%; height: 100%; background: #b2bec3; } </style> <body> <div class="container"> <div class="left"> <p>防抖(1s內顯示輸入內容)</p> <input type="text" id="leftInput" /> <div class='textDiv' id="textShow"></div> </div> <div class="right"> <p>節流(3s內觸發一次)</p> <input type="submit" id="skillTriger" value="發動技能" /> <div class='skillEvent' id="skillEventId"></div> </div> </div> <script> // 防抖 var inputDom = document.getElementById('leftInput'); // 函數柯里化 function debounce(delay, callback) { let timer return function(value) { //閉包內存泄漏 clearTimeout(timer) timer = setTimeout(function() { //執行 callback(value) }, delay) } } // 顯示內容的函數 function showText(value) { var textDom = document.getElementById('textShow'); console.log(value) textDom.innerText = value; } var debounceFunc = debounce(1000, showText); inputDom.addEventListener('keyup', function(e) { let value = e.target.value debounceFunc(value) }) // 節流 var skillDom = document.getElementById('skillTriger'); function throttle(wait, callback) { let timeOut; return function(value) { if (!timeOut) { timeOut = setTimeout(function() { callback(value); //執行一次,時間段內的都不知執行 timeOut = null; }, wait) } } } function skillEvent(value) { var textDom = document.getElementById('skillEventId'); console.log(value) ++count
                textDom.innerText = value + count; } var skillAc = throttle(3000, skillEvent) var count = 0 skillDom.addEventListener('click', function(e) { let value = e.target.value skillAc(value) }) </script> </body> </html>  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113

1

藍藍設計建立了UI設計分享群,每天會分享國內外的一些優秀設計,如果有興趣的話,可以進入一起成長學習,請掃碼藍小助,報下信息,藍小助會請您入群。歡迎您加入噢~~希望得到建議咨詢、商務合作,也請與我們聯系。

分享此文一切功德,皆悉回向給文章原作者及眾讀者.

轉自:csdn
免責聲明:藍藍設計尊重原作者,文章的版權歸原作者。如涉及版權問題,請及時與我們取得聯系,我們立即更正或刪除。

藍藍設計m.skdbbs.com )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 平面設計服務

日歷

鏈接

個人資料

藍藍設計的小編 http://m.skdbbs.com

存檔

92国产精品视频_亚洲a级在线观看_国产精品电影观看_国产精品免费观看在线_精品伊人久久97_亚洲人成在线观_尤物九九久久国产精品的特点_成人激情在线播放_成人黄色大片在线免费观看_亚洲成人精品久久久_久久免费视频在线观看_久久精品国产一区_国产一区二区三区18_亚洲欧美中文字幕在线一区_日韩美女中文字幕_日韩视频免费在线
欧美日韩国产丝袜另类| 伊人久久大香线蕉av超碰| 日韩精品一线二线三线| 亚洲日本成人| 国内一区二区在线视频观看| 中文字幕字幕中文在线中不卡视频| 久久频这里精品99香蕉| 视频一区二区三区入口| 久久综合九色综合97婷婷女人| 亚洲一区二区在线视频| 精品乱子伦一区二区三区| 国产在线激情视频| 久久av老司机精品网站导航| 福利电影一区| 性欧美大战久久久久久久久| 97操在线视频| 99久久夜色精品国产亚洲狼| 99九九久久| 欧美精品久久久久久久| 精品在线亚洲视频| 在线电影一区二区| 免费看污久久久| 三上悠亚亚洲一区| 91麻豆视频网站| 麻豆蜜桃在线| 99久久免费精品国产72精品九九| 草草影院在线观看| 六九午夜精品视频| 亚洲永久免费av| 国产超碰在线一区| 在线精品小视频| 久久av一区二区| 亚洲乱码视频| 亚洲欧美国产一区二区| 亚洲图片激情小说| 欧美大胆视频| yellow字幕网在线| 日日狠狠久久偷偷综合色| 精品一区二区三区在线播放| 国产亚洲第一伦理第一区| 欧美性生活大片视频| 国产精品久久久久久久久久久免费看| 精品一区二区三区中文字幕| 亚洲高清视频一区二区| 欧美喷水一区二区| 欧美国产在线电影| 日韩精品视频在线| 免费在线视频一区| 在线午夜精品| 狠狠色狠狠色综合日日tαg| 精品中文字幕一区二区三区四区| 久久精品国产精品亚洲红杏| 国产精品黄色| 精品国产不卡| 日韩在线观看一区二区三区| 亚洲国产日韩一级| 欧美日韩日本网| 亚洲国产成人久久综合| 欧洲精品一区二区三区在线观看| 97超视频免费观看| 午夜欧美视频在线观看| 国产精品私人自拍| 国内成+人亚洲+欧美+综合在线| 欧美激情视频在线免费观看 欧美视频免费一| 狠狠色狠狠色综合日日91app| 欧美又粗又大又爽| 国产精品7m凸凹视频分类| 国产伦精品一区二区三区视频免费| 正在播放日韩精品| 一区二区三区在线播| 亚洲第一综合| 久久久亚洲综合网站| 99热这里有精品| 精品欧美aⅴ在线网站| 大片免费播放在线视频| 2020国产精品自拍| 免费看日产一区二区三区| 欧美日韩综合不卡| 欧美日韩一区二区免费在线观看| 日韩在线资源| 国产午夜精品一区二区三区视频| 国内外成人在线| 日韩中文一区二区| 日韩一级精品视频在线观看| 国产精品999999| 日本一区高清在线视频| 欧美一级日韩一级| 亚洲伦理一区二区| 国产精品欧美一区二区| 久久久久久久久国产| 久久成人综合| caoporm免费视频在线| 久久密一区二区三区| www.久久久久久久久| 麻豆精品视频在线观看免费| 99国产超薄丝袜足j在线观看| 91久久国产自产拍夜夜嗨| 久久成人羞羞网站| 天堂资源在线中文精品| 宅男噜噜噜66一区二区| 午夜不卡在线视频| 亚洲18私人小影院| 黄色在线观看视频网站| 一区二区自拍| 黑人极品videos精品欧美裸| 黄页网站大全在线免费观看| 成人国产精品一区| 久久免费精品| 一区二区亚洲视频| 岛国在线大片| 中文成人综合网| 国产不卡在线| 欧美极品少妇与黑人| 中文字幕在线观看播放| 亚洲高清成人| 色综合久久综合网| 黄视频免费在线看| 日本а中文在线天堂| 久久一区二区三区四区五区| 91精品国产福利在线观看| 高清一区二区三区视频| 一区二区精彩视频| 国产亚洲欧美日韩日本| 亚洲高清激情| 三级中文字幕在线观看| 日本aⅴ免费视频一区二区三区| 激情久久一区| 国产午夜精品一区二区三区欧美| 精品国产亚洲一区二区三区| www.久久草| 日本一区不卡| 一色桃子久久精品亚洲| 欧美亚洲第一页| 午夜在线a亚洲v天堂网2018| 欧美黑人巨大xxxxx| 国产成人99久久亚洲综合精品| 999国产精品一区| 亚洲欧洲美洲国产香蕉| www.国产精品一二区| 亚洲精品成人精品456| 欧美三级午夜理伦三级中文幕| 97久久久免费福利网址| 午夜精品久久久久久久久久久久久| 国产精品女人久久久久久| 成人午夜av在线| 日本一区视频在线| 性色av一区二区三区红粉影视| 一本一本久久| 电影91久久久| 欧美一卡2卡3卡4卡无卡免费观看水多多| xxxxxx欧美| 337p日本欧洲亚洲大胆精品| 国产成人精品一区二区三区网站观看| 国产成人av一区二区| 国产一区二区三区无遮挡| 日本不卡一区二区三区在线观看| 99久久婷婷国产综合精品电影√| 欧洲一区二区视频| 日韩精品一区二区三区视频播放| 亚洲精品一区二区三区蜜桃下载| 国产亚洲精品成人av久久ww| 亚洲私人影院| 亚洲一区亚洲二区亚洲三区| 久久久亚洲精品一区二区三区|