日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

如何理解JS函數防抖和函數節流

瀏覽:182日期:2024-03-25 16:15:10
目錄概述1. 函數防抖(debounce)2. 函數節流(throttle)概述

函數防抖和函數節流都是定義一個函數,該函數接收一個函數作為參數,并返回一個添加了防抖或節流功能后的函數。

因此可以將函數防抖和函數節流看作是一個函數工廠,負責對傳進來的函數進行相應的加工改造,然后產出一個新的帶有某種功能的函數。

函數防抖是某一時間內只執行一次,而函數節流是間隔時間執行

假如有這樣一個場景:在某一頁面,有一個按鈕是 '加載更多',這個按鈕的作用就是使用 ajax 從后端服務器請求更多的數據展示在頁面,我們都知道,ajax 請求的響應是一個異步的,會存在一定的響應時間,如果用戶在點擊了該按鈕后,立馬又點擊了一下該按鈕,按照常規回調函數的操作,回調函數會立馬又執行一次,那么就是用戶短時間內點擊了兩次 '加載更多' 按鈕后就會執行回調函數向后端發起了兩次一模一樣的 ajax 請求,服務器會一一接收請求并處理返回數據,短時間內兩次請求還好,如果用戶連續點擊了 n 次 '加載更多' 按鈕呢?那就會短時間內向服務器發送了 n 次一模一樣的請求,每次后端處理 ajax 請求后返回數據后頁面就會重新再渲染一次,盡管內容沒有改變,這樣就會帶來性能上的問題,不僅為服務器帶去了壓力,也為瀏覽器帶來了不必要的渲染,這就是函數頻繁執行帶來的副作用。

那么如何設置這個按鈕的點擊事件回調函數才能減少該函數頻繁執行帶來的副作用呢?

1. 函數防抖(debounce)

函數防抖的設計思路就是在函數執行前加一個等待時間,在這個等待時間內如果該函數又需要執行一次,就重新計算等待時間,再次等待,依次類推,直到等待時間到了,還沒有等到函數又需要執行的情況,才會執行這個函數。

就拿上述的場景來說,假設向后臺發送 ajax 請求的響應時間大概是在 2s 左右,那就設置這個等待時間為 2s,當用戶第一次點擊'加載更多'按鈕后,該回調函數并沒有立即執行,也就是還沒有開始發送 ajax,此時該函數在等待,如果在 2s 內用戶又點擊了'加載更多',那就重新計算等待時間,再等待 2s ,此時 2s 過去了,用戶沒再第三次點擊'加載更多'按鈕了,那么該函數就開始執行了,向后端發送 ajax 請求了。

函數防抖實現方式如下:

function debounce(fn, delay){ let timeId = null return function(){let context = thisif(timeId){window.clearTimeout(timeId)}timeId = setTimeout(()=>{ fn.apply(context, arguments) timeId = null},delay) }}2. 函數節流(throttle)

函數節流的設計思路是在函數執行后加一個冷卻時間,函數在第一次執行時是立馬執行,但在其執行完后設置一個冷卻時間,在冷卻時間內,該函數不能再次執行,直到冷卻時間結束允許該函數執行了,才可以再次執行。

就拿上述的場景來說,冷卻時間假設也設置為 2s,在用戶第一次點擊'加載更多' 后按鈕的回調函數就會執行,也就是會向后臺發送 ajax 請求,此時用戶又立馬再次點擊了'加載更多'按鈕,由于此刻 2s 的冷卻時間還沒有到,那么就會給第二次的函數執行加上一個延遲執行。

function throttle(fn, delay){ let canUse = true return function(){if(canUse){ fn.apply(this, arguments) canUse = false setTimeout(()=>canUse=true, delay)} }}

以上就是如何理解JS函數防抖和函數節流的詳細內容,更多關于JS函數防抖和函數節流的資料請關注好吧啦網其它相關文章!

標簽: JavaScript
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩视频二区| 欧美亚洲国产激情| 蜜臀av国产精品久久久久| 99免费精品| 99精品在线观看| av亚洲在线观看| 国产精品免费看| 在线免费观看亚洲| 香蕉成人久久| 日韩国产欧美视频| 国产精品亚洲欧美日韩一区在线 | 欧美日韩国产一区精品一区| 国产一级久久| 日韩精品一区二区三区av| 久久激五月天综合精品| 精品成人18| 亚洲精品2区| 在线精品亚洲| 精品国产乱码久久久| 久久久久久久久丰满| 日韩精品一二三四| 麻豆91精品视频| 99视频精品全部免费在线视频| 日本欧洲一区二区| 国产精品成人一区二区网站软件| 久久精品色播| 免费观看不卡av| 婷婷精品在线| 日韩综合在线| 国产美女一区| 美女尤物国产一区| 悠悠资源网久久精品| 欧美中文一区| 中文一区一区三区高中清不卡免费| 1024精品久久久久久久久| 日韩高清在线不卡| 久久天堂成人| 国产精品乱战久久久| 美女少妇全过程你懂的久久| 国产精一区二区| 日韩av首页| 久久精品 人人爱| 欧美日韩三区| 欧美黄色一区| 蜜臀久久99精品久久久画质超高清 | 欧美一级一区| 欧美 日韩 国产精品免费观看| 水野朝阳av一区二区三区| 精品国产欧美| 国产亚洲一级| 日韩成人免费| 欧美日韩xxxx| 亚洲一区二区三区高清| 亚洲欧洲高清| 麻豆一区二区99久久久久| 一级欧美视频| 欧美69视频| 精品国产亚洲一区二区三区在线| 免费成人av在线播放| 欧美日韩一二| 欧美国产美女| 国产精品亲子伦av一区二区三区 | 国产精品免费大片| 免费在线看一区| 色综合www| 麻豆精品久久久| 日韩av在线免费观看不卡| 中文亚洲欧美| 亚洲高清不卡| 日韩在线看片| 麻豆91在线播放| 国产精品一区二区三区av| 亚洲91在线| 免费一级片91| 手机精品视频在线观看| 日韩欧美一区二区三区免费看| 国产伦精品一区二区三区视频| 视频一区二区欧美| 在线国产一区二区| 欧美丝袜一区| 91高清一区| 久久人人99| 久久夜夜操妹子| 日韩在线短视频| 国产网站在线| 色一区二区三区四区| 国产91在线播放精品| 久久男人av| 美女视频一区在线观看| 欧美黄色精品| 国产精品久久久久久妇女| 日本亚洲最大的色成网站www| 一区在线免费观看| 亚洲欧洲一区| 在线综合视频| 亚洲性视频在线| 亚洲精品第一| 欧美精品影院| 国产精品地址| 91免费精品| 久久五月天小说| 亚洲欧美成人综合| 亚洲精品四区| 日韩一区二区三区免费视频| 91福利精品在线观看| 欧美日韩亚洲一区| 国产精品激情| 国产成人精品一区二区三区免费 | 亚洲国产专区校园欧美| 99久久久久国产精品| 亚洲欧洲另类| 午夜电影一区| 国产精品任我爽爆在线播放| 麻豆国产欧美一区二区三区 | 亚洲一区二区三区高清| 亚洲久久一区| 国产精品尤物| 国产成人精品一区二区三区视频| 日韩欧美二区| 视频一区在线播放| 欧美日韩18| 国产v综合v| 香蕉久久国产| 久久国内精品| av综合电影网站| 免费欧美日韩| 国产激情综合| 久久国产小视频| 日韩一区二区三区精品| 日本一二区不卡| 中文久久精品| 国产欧美日韩一区二区三区四区| 在线手机中文字幕| 在线日韩成人| 国产精选在线| 久久亚洲影院| 久久亚洲人体| 国产精品呻吟| 国产伦一区二区三区| 99久久夜色精品国产亚洲1000部| 亚洲精品系列| 日韩不卡免费高清视频| 亚洲精品乱码日韩| 国产成人精品福利| 国产精品毛片在线| 精品视频91| 久久亚洲影院| 日韩理论视频| 91精品日本| 黄色日韩在线| 精品视频网站| 亚洲日韩中文字幕一区| 日韩综合精品| 69堂精品视频在线播放| 久久久精品久久久久久96 | 91精品国产福利在线观看麻豆| 在线精品一区| 极品日韩av| 久久精品国产99国产| 国产精品老牛| 亚洲成人va| 国产精品免费99久久久| 99pao成人国产永久免费视频| 欧美经典一区| 日韩专区一卡二卡| 欧美激情另类| 国产精品免费99久久久| 免费视频一区二区| 99精品国产一区二区三区| 国产精品综合| 亚洲精品三级| 亚洲一区区二区| | 精品国产欧美日韩| 日本成人在线不卡视频| 免费久久久久久久久| 国产一区二区视频在线看| 日本不卡一二三区黄网| 欧美成a人免费观看久久| 久久伊人国产| 国产午夜久久av| 涩涩涩久久久成人精品| 9国产精品视频| 五月天av在线| 精品国产一区二区三区2021| 欧美日韩一区二区国产| 视频一区中文字幕精品| 久久国产88| 欧美福利专区| 91精品一区国产高清在线gif| 国产精品精品国产一区二区| 你懂的国产精品永久在线| 日本不卡一区二区| 夜夜嗨一区二区| 亚洲成人免费| 女人天堂亚洲aⅴ在线观看| 精品欧美一区二区三区在线观看| 国产在线日韩精品| 超级白嫩亚洲国产第一| 最新中文字幕在线播放|