日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

防抖 节流_面试必备考点:防抖与节流

發布時間:2025/4/16 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 防抖 节流_面试必备考点:防抖与节流 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

戳藍字"Web前端嚴選"關注我們哦

手寫防抖和節流

1.引言

「防抖和節流的產生」

瀏覽器的resize、scroll、keypress、mousemove操作時會頻繁觸發,如果我們在回調中計算元素位置、做一些跟DOM相關的操作,引起瀏覽器回流和重繪,頻繁觸發回調,很可能會造成瀏覽器掉幀,甚至會使瀏覽器崩潰,影響用戶體驗。針對這種現象,目前有兩種常用的解決方案:防抖和節流。

2.防抖

function?debounce(fn,delay){
?let?timer?=?null;
?return?function(){
??clearTimeout(timer);
??timer?=?setTimeout(function(){
???fn.call(this,...arguments)
??},delay)
?}
}

防抖:多次事件觸發,只執行一次

舉例形容一下,就是得帕金森的手去拿一杯水,雖然手抖動很多次,但是拿水的動作只執行一次

body.onscroll?=?debounce(function(){
?console.log("防抖")
},1000)

3.節流

function?throttle(fn,delay){
?let?start?=?Date.now();
?return?function(){
??let?last?=?Date.now();
??if(last?-?start?>?delay){
???fn.apply(this,arguments);
???start?=?last;
??}
?}
}

節流:事件觸發,固定時間內執行一次

舉例形容一下,就是水管每小時流2立方米水,節流減少到每小時流1立方米水

body.onscroll?=?throttle(function(){
?console.log("節流")
},1000)

?? 感謝大家

如果你覺得這篇內容對你挺有有幫助的話:

  • 點贊支持下吧,讓更多的人也能看到這篇內容(收藏不點贊,我就嚶嚶嚶 -_-)

  • 關注公眾號【Web前端嚴選】,定期為你推送好文。

  • 添加個人微信,進群與小伙伴一起玩耍(已經推出)~

    點個在看,大家都看?

    總結

    以上是生活随笔為你收集整理的防抖 节流_面试必备考点:防抖与节流的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。