国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

消滅前端閃爍魔鬼:Vue中的防抖術(shù)

這篇具有很好參考價(jià)值的文章主要介紹了消滅前端閃爍魔鬼:Vue中的防抖術(shù)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

前言

在前端的世界里,用戶(hù)操作如同一場(chǎng)狂風(fēng)驟雨,而我們的頁(yè)面則要頂住這些波瀾洶涌的輸入。有時(shí)候,我們希望頁(yè)面在用戶(hù)輸入停止后再作出響應(yīng),以避免頻繁觸發(fā)操作。這時(shí),Vue的防抖動(dòng)技術(shù)就如同時(shí)光隧道一樣,將我們帶回到寧?kù)o的過(guò)去。

本篇博客將帶你穿越時(shí)空,揭開(kāi)Vue中防抖動(dòng)的神秘面紗。讓我們一同探索這項(xiàng)黑科技,如何讓頁(yè)面更靈敏,用戶(hù)體驗(yàn)更舒適。

什么是防抖動(dòng)

防抖(Debouncing) 是一種前端開(kāi)發(fā)中用于控制函數(shù)執(zhí)行頻率的技術(shù)。它通過(guò)將多次連續(xù)觸發(fā)的函數(shù)調(diào)用合并成一次來(lái)減少函數(shù)的執(zhí)行次數(shù)。防抖的核心思想是在某個(gè)時(shí)間段內(nèi),只執(zhí)行一次函數(shù),而忽略在此時(shí)間段內(nèi)的其他觸發(fā)。

防抖的基本原理:

  1. 設(shè)置一個(gè)定時(shí)器: 當(dāng)函數(shù)被調(diào)用時(shí),不立即執(zhí)行,而是等待一段時(shí)間。
  2. 重復(fù)調(diào)用時(shí)重置定時(shí)器: 如果在等待時(shí)間內(nèi)再次調(diào)用該函數(shù),則取消前一個(gè)定時(shí)器,并重新設(shè)置一個(gè)新的定時(shí)器。
  3. 函數(shù)執(zhí)行: 當(dāng)?shù)却龝r(shí)間結(jié)束后,執(zhí)行函數(shù)。

防抖的應(yīng)用場(chǎng)景:

a. 輸入框輸入事件:

  • 問(wèn)題: 用戶(hù)在輸入框中連續(xù)輸入,每次輸入都觸發(fā)搜索請(qǐng)求。
  • 解決方案: 使用防抖,等待用戶(hù)停止輸入一段時(shí)間后再觸發(fā)搜索請(qǐng)求,減少不必要的請(qǐng)求次數(shù)。

b. 窗口大小調(diào)整事件:

  • 問(wèn)題: 窗口大小調(diào)整時(shí),resize事件頻繁觸發(fā)。
  • 解決方案: 使用防抖,等待窗口大小穩(wěn)定后再執(zhí)行相關(guān)操作,提高性能。

c. 按鈕點(diǎn)擊事件:

  • 問(wèn)題: 按鈕被多次點(diǎn)擊,觸發(fā)頻繁的操作。
  • 解決方案: 使用防抖,確保在一段時(shí)間內(nèi)只執(zhí)行一次按鈕點(diǎn)擊事件的處理函數(shù)。

d. 頁(yè)面滾動(dòng)事件:

  • 問(wèn)題: 頁(yè)面滾動(dòng)時(shí),scroll事件觸發(fā)頻繁。
  • 解決方案: 使用防抖,等待滾動(dòng)停止后再執(zhí)行相關(guān)操作,提高性能。

為什么需要讓函數(shù)“冷靜”一下?

  1. 性能優(yōu)化: 防抖可以減少函數(shù)的執(zhí)行次數(shù),從而提高性能。特別是在一些頻繁觸發(fā)的事件中,通過(guò)減少函數(shù)執(zhí)行次數(shù),可以降低資源消耗。

  2. 減少不必要的網(wǎng)絡(luò)請(qǐng)求: 在涉及到網(wǎng)絡(luò)請(qǐng)求的場(chǎng)景,如輸入框搜索建議,防抖可以減少不必要的請(qǐng)求,提高用戶(hù)體驗(yàn)。

  3. 避免重復(fù)操作: 防抖可以避免用戶(hù)在短時(shí)間內(nèi)多次觸發(fā)相同操作,確保只有在合適的時(shí)機(jī)才執(zhí)行相應(yīng)的邏輯。

  4. 解決抖動(dòng)問(wèn)題: 一些設(shè)備或?yàn)g覽器存在觸摸或鼠標(biāo)的抖動(dòng)問(wèn)題,防抖可以用來(lái)平滑處理這些抖動(dòng)輸入,使得最終觸發(fā)的操作更加穩(wěn)定。

總體來(lái)說(shuō),防抖是一種有效的策略,通過(guò)在一定時(shí)間內(nèi)只執(zhí)行一次函數(shù),可以更好地控制函數(shù)的執(zhí)行頻率,從而在性能和用戶(hù)體驗(yàn)方面都帶來(lái)一些優(yōu)勢(shì)。

vue防抖動(dòng)原理

在Vue中,實(shí)現(xiàn)防抖的基本原理是利用setTimeoutclearTimeout來(lái)控制函數(shù)的執(zhí)行。以下是一個(gè)簡(jiǎn)單的Vue中防抖的實(shí)現(xiàn)示例:

// 在Vue組件的methods中定義一個(gè)需要防抖的函數(shù)
methods: {
  // 防抖函數(shù)
  debounceFunction: function() {
    // 清除之前的定時(shí)器
    clearTimeout(this.timer);

    // 設(shè)置新的定時(shí)器
    this.timer = setTimeout(() => {
      // 在定時(shí)器結(jié)束時(shí)執(zhí)行函數(shù)邏輯
      console.log('執(zhí)行防抖函數(shù)的邏輯');
    }, 500); // 設(shè)置防抖的時(shí)間間隔,例如500毫秒
  }
}

在這個(gè)示例中,debounceFunction是需要防抖的函數(shù)。當(dāng)這個(gè)函數(shù)被調(diào)用時(shí),首先會(huì)清除之前設(shè)置的定時(shí)器(如果存在的話),然后重新設(shè)置一個(gè)新的定時(shí)器。新的定時(shí)器會(huì)在一定時(shí)間后執(zhí)行函數(shù)的邏輯。如果在這段時(shí)間內(nèi)再次調(diào)用了debounceFunction,則會(huì)清除之前的定時(shí)器,重新設(shè)置一個(gè)新的定時(shí)器,從而延遲函數(shù)的執(zhí)行。

這樣的實(shí)現(xiàn)機(jī)制確保了在一定時(shí)間內(nèi)只有最后一次調(diào)用debounceFunction才會(huì)觸發(fā)函數(shù)的執(zhí)行,從而實(shí)現(xiàn)了防抖的效果。

在Vue組件中,可以在mounted生命周期鉤子中進(jìn)行相關(guān)的初始化,例如:

mounted() {
  this.timer = null; // 初始化定時(shí)器
}

這樣,Vue組件就可以通過(guò)調(diào)用debounceFunction來(lái)實(shí)現(xiàn)防抖效果,適用于一些需要限制頻率的場(chǎng)景,比如輸入框的輸入事件、窗口大小變化等。

如何在vue中防止抖動(dòng)

在Vue中應(yīng)用防抖技術(shù)通常是通過(guò)在組件的方法中使用防抖函數(shù)。下面是一個(gè)簡(jiǎn)單的示例,演示如何在Vue組件中使用防抖:

<template>
  <div>
    <input v-model="searchInput" @input="handleSearchInput" placeholder="Type to search">
    <p>Search result: {{ searchResult }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      searchInput: '',
      searchResult: ''
    };
  },
  methods: {
    // 使用防抖函數(shù)處理搜索輸入
    handleSearchInput: function() {
      // 在這里調(diào)用防抖函數(shù),傳入需要執(zhí)行的實(shí)際搜索邏輯
      this.debounceSearch();
    },

    // 防抖函數(shù)
    debounceSearch: function() {
      // 清除之前的定時(shí)器
      clearTimeout(this.timer);

      // 設(shè)置新的定時(shí)器,延遲執(zhí)行搜索邏輯
      this.timer = setTimeout(() => {
        // 實(shí)際的搜索邏輯,這里可以調(diào)用搜索接口等
        this.searchResult = `Searching for: ${this.searchInput}`;
      }, 500); // 設(shè)置防抖的時(shí)間間隔,例如500毫秒
    }
  },
  mounted() {
    this.timer = null; // 初始化定時(shí)器
  }
};
</script>

在這個(gè)例子中,我們有一個(gè)輸入框用于搜索,通過(guò)@input事件監(jiān)聽(tīng)用戶(hù)輸入,并調(diào)用handleSearchInput方法。handleSearchInput方法再調(diào)用防抖函數(shù)debounceSearch,這個(gè)防抖函數(shù)用來(lái)控制搜索邏輯的執(zhí)行頻率。

防抖函數(shù)debounceSearch通過(guò)setTimeout來(lái)設(shè)置定時(shí)器,確保在用戶(hù)停止輸入一段時(shí)間后才執(zhí)行搜索邏輯。如果用戶(hù)在這段時(shí)間內(nèi)繼續(xù)輸入,就會(huì)清除之前的定時(shí)器,重新設(shè)置一個(gè)新的定時(shí)器,從而延遲搜索邏輯的執(zhí)行。

這個(gè)例子中的防抖時(shí)間間隔是500毫秒,你可以根據(jù)實(shí)際需求調(diào)整這個(gè)值。這種防抖技術(shù)可以有效地減少在輸入框頻繁輸入時(shí)觸發(fā)搜索的次數(shù),提高性能和用戶(hù)體驗(yàn)。

防抖動(dòng)的應(yīng)用場(chǎng)景

防抖動(dòng)在實(shí)際項(xiàng)目中有許多應(yīng)用場(chǎng)景,主要是通過(guò)控制函數(shù)的執(zhí)行頻率來(lái)提高性能和用戶(hù)體驗(yàn)。以下是一些常見(jiàn)的防抖應(yīng)用場(chǎng)景:

1. 輸入框搜索:

在搜索框中輸入文字時(shí),防抖可以用來(lái)確保只有在用戶(hù)停止輸入一段時(shí)間后才觸發(fā)搜索請(qǐng)求。這減少了不必要的請(qǐng)求,提高了性能。在大型數(shù)據(jù)集的搜索場(chǎng)景中,這尤其有用。

// 輸入框搜索的防抖處理
handleSearchInput: debounce(function() {
  // 執(zhí)行搜索邏輯
  // ...
}, 500)

2. 窗口大小調(diào)整事件:

窗口大小調(diào)整事件(resize)在用戶(hù)調(diào)整瀏覽器窗口大小時(shí)會(huì)頻繁觸發(fā)。使用防抖可以確保只有在用戶(hù)停止調(diào)整窗口大小一段時(shí)間后才執(zhí)行相關(guān)邏輯,提高性能。

// 窗口大小調(diào)整事件的防抖處理
handleResize: debounce(function() {
  // 執(zhí)行窗口大小調(diào)整邏輯
  // ...
}, 300)

3. 按鈕點(diǎn)擊事件:

在某些場(chǎng)景下,按鈕可能被用戶(hù)頻繁點(diǎn)擊,使用防抖可以確保只有最后一次點(diǎn)擊才觸發(fā)相應(yīng)的操作,避免不必要的重復(fù)執(zhí)行。

// 按鈕點(diǎn)擊事件的防抖處理
handleButtonClick: debounce(function() {
  // 執(zhí)行按鈕點(diǎn)擊邏輯
  // ...
}, 500)

4. 滾動(dòng)事件:

頁(yè)面滾動(dòng)事件(scroll)在用戶(hù)滾動(dòng)頁(yè)面時(shí)觸發(fā),使用防抖可以確保只有在用戶(hù)停止?jié)L動(dòng)一段時(shí)間后才執(zhí)行滾動(dòng)相關(guān)的邏輯,提高性能。

// 頁(yè)面滾動(dòng)事件的防抖處理
handleScroll: debounce(function() {
  // 執(zhí)行滾動(dòng)邏輯
  // ...
}, 200)

5. 用戶(hù)輸入驗(yàn)證:

在用戶(hù)輸入時(shí)進(jìn)行實(shí)時(shí)驗(yàn)證,例如密碼強(qiáng)度檢查。防抖可以用來(lái)延遲驗(yàn)證操作,以避免在用戶(hù)還在輸入過(guò)程中頻繁觸發(fā)驗(yàn)證。

// 用戶(hù)輸入驗(yàn)證的防抖處理
validateInput: debounce(function() {
  // 執(zhí)行輸入驗(yàn)證邏輯
  // ...
}, 300)

這些場(chǎng)景中,防抖技術(shù)能夠有效地減少不必要的函數(shù)執(zhí)行次數(shù),提高了頁(yè)面的性能和用戶(hù)體驗(yàn)。在實(shí)際項(xiàng)目中,合理應(yīng)用防抖可以在一些頻繁觸發(fā)的事件中實(shí)現(xiàn)更加平滑和高效的交互。

防抖動(dòng)vs節(jié)流

防抖(Debouncing)和節(jié)流(Throttling)都是用于控制函數(shù)執(zhí)行頻率的技術(shù),但它們?cè)趯?shí)現(xiàn)和應(yīng)用上有一些關(guān)鍵的區(qū)別。

防抖動(dòng)(Debouncing):

原理: 防抖的核心思想是通過(guò)延遲一段時(shí)間來(lái)合并多個(gè)函數(shù)調(diào)用,確保只有在一段時(shí)間內(nèi)沒(méi)有新的函數(shù)調(diào)用時(shí)才執(zhí)行函數(shù)。如果在這段時(shí)間內(nèi)有新的函數(shù)調(diào)用,就會(huì)重新開(kāi)始計(jì)時(shí)。

應(yīng)用場(chǎng)景: 適用于那些需要等待一段時(shí)間后執(zhí)行一次的操作,比如輸入框搜索、窗口大小調(diào)整事件等。防抖可以確保只有在用戶(hù)停止輸入或停止調(diào)整窗口大小一段時(shí)間后才觸發(fā)相應(yīng)的操作。

實(shí)現(xiàn)示例

function debounce(func, delay) {
  let timer;
  return function(...args) {
    clearTimeout(timer);
    timer = setTimeout(() => {
      func.apply(this, args);
    }, delay);
  };
}

節(jié)流(Throttling):

原理: 節(jié)流的核心思想是限制函數(shù)在一定時(shí)間內(nèi)的執(zhí)行次數(shù),確保函數(shù)在指定時(shí)間間隔內(nèi)只執(zhí)行一次。如果在這段時(shí)間內(nèi)有多個(gè)函數(shù)調(diào)用,只有第一個(gè)調(diào)用會(huì)生效,后續(xù)調(diào)用會(huì)被忽略。

應(yīng)用場(chǎng)景: 適用于那些需要在一定時(shí)間間隔內(nèi)保持函數(shù)執(zhí)行的操作,比如滾動(dòng)事件、按鈕點(diǎn)擊等。節(jié)流可以確保在一定時(shí)間內(nèi)只執(zhí)行一次函數(shù),避免過(guò)于頻繁的觸發(fā)。

實(shí)現(xiàn)示例:

function throttle(func, delay) {
  let lastExecTime = 0;
  return function(...args) {
    const currentTime = Date.now();
    if (currentTime - lastExecTime >= delay) {
      func.apply(this, args);
      lastExecTime = currentTime;
    }
  };
}

區(qū)別對(duì)比:

  1. 執(zhí)行時(shí)機(jī):

    • 防抖: 只有在一定時(shí)間內(nèi)沒(méi)有新的函數(shù)調(diào)用時(shí)才執(zhí)行函數(shù)。
    • 節(jié)流: 一定時(shí)間間隔內(nèi)只執(zhí)行一次函數(shù),不會(huì)考慮是否有新的函數(shù)調(diào)用。
  2. 觸發(fā)時(shí)機(jī):

    • 防抖: 在事件的最后一次觸發(fā)后,等待一段時(shí)間執(zhí)行。
    • 節(jié)流: 在每個(gè)時(shí)間間隔的開(kāi)始處執(zhí)行。
  3. 適用場(chǎng)景:

    • 防抖: 適用于那些在連續(xù)觸發(fā)時(shí)只關(guān)心最后一次觸發(fā)的場(chǎng)景,比如輸入框搜索。
    • 節(jié)流: 適用于那些需要在一定時(shí)間內(nèi)保持執(zhí)行的場(chǎng)景,比如滾動(dòng)事件、按鈕點(diǎn)擊。

如何選擇:

  • 防抖: 適合需要等待一定時(shí)間后執(zhí)行的場(chǎng)景,關(guān)心最后一次觸發(fā)的結(jié)果,比如輸入框搜索、窗口大小調(diào)整事件。

  • 節(jié)流: 適合需要在一定時(shí)間間隔內(nèi)保持執(zhí)行的場(chǎng)景,關(guān)心連續(xù)觸發(fā)中的每一次,比如滾動(dòng)事件、按鈕點(diǎn)擊。

在實(shí)際應(yīng)用中,選擇防抖還是節(jié)流取決于具體的需求和業(yè)務(wù)場(chǎng)景。如果對(duì)連續(xù)觸發(fā)的每一次都有關(guān)注,可以選擇節(jié)流;如果只關(guān)心最后一次觸發(fā)的結(jié)果,可以選擇防抖。

最佳實(shí)踐和注意事項(xiàng)

  1. 理解需求: 在使用防抖之前,確保清楚了解業(yè)務(wù)需求。明確是否需要等待一段時(shí)間后執(zhí)行一次函數(shù),或者在一定時(shí)間間隔內(nèi)保持函數(shù)的執(zhí)行。

  2. 選擇合適的時(shí)間間隔: 防抖和節(jié)流的效果與設(shè)置的時(shí)間間隔密切相關(guān)。根據(jù)具體需求,選擇合適的時(shí)間間隔以達(dá)到最佳的用戶(hù)體驗(yàn)和性能。

  3. 不適用于實(shí)時(shí)性要求高的場(chǎng)景: 防抖和節(jié)流的機(jī)制會(huì)導(dǎo)致一定的延遲,因此不適用于實(shí)時(shí)性要求高、需要立即響應(yīng)的場(chǎng)景。

  4. 注意this指向: 在Vue組件中使用防抖時(shí),確保函數(shù)內(nèi)部的this指向組件實(shí)例??梢允褂眉^函數(shù)或者使用.bind(this)來(lái)綁定this。

  5. 適用于頻繁觸發(fā)的場(chǎng)景: 防抖和節(jié)流主要用于那些頻繁觸發(fā)的事件,如輸入框輸入、滾動(dòng)事件等。在這些場(chǎng)景中使用可以有效減少函數(shù)執(zhí)行次數(shù),提高性能。

  6. 測(cè)試和調(diào)試: 在使用防抖時(shí),進(jìn)行充分的測(cè)試和調(diào)試是很重要的。確保在各種條件下,防抖的邏輯都能正常工作。

  7. 避免過(guò)度使用: 不是所有的場(chǎng)景都適合使用防抖。在某些需要即時(shí)響應(yīng)的場(chǎng)景中,防抖可能導(dǎo)致用戶(hù)感知到的延遲。權(quán)衡業(yè)務(wù)需求,謹(jǐn)慎選擇是否使用防抖。

  8. 組合使用: 在一些復(fù)雜的場(chǎng)景中,可能需要組合使用防抖和節(jié)流來(lái)滿(mǎn)足不同的需求。例如,一個(gè)輸入框既需要在用戶(hù)停止輸入時(shí)觸發(fā)搜索,又需要在用戶(hù)持續(xù)輸入時(shí)每隔一段時(shí)間更新搜索結(jié)果。

  9. 考慮取消防抖: 在某些情況下,可能需要取消防抖。例如,當(dāng)某個(gè)條件滿(mǎn)足時(shí),立即執(zhí)行一次函數(shù)而不等待防抖的時(shí)間間隔。

  10. 注意內(nèi)存泄漏: 如果防抖函數(shù)在組件銷(xiāo)毀前未被清理,可能會(huì)導(dǎo)致內(nèi)存泄漏。確保在組件銷(xiāo)毀時(shí)清理定時(shí)器等資源。

總體而言,使用防抖和節(jié)流是為了更好地控制函數(shù)的執(zhí)行頻率,提高性能和用戶(hù)體驗(yàn)。根據(jù)具體的業(yè)務(wù)需求和場(chǎng)景,謹(jǐn)慎選擇并合理配置防抖和節(jié)流的參數(shù)。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-781526.html

到了這里,關(guān)于消滅前端閃爍魔鬼:Vue中的防抖術(shù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • js中如何實(shí)現(xiàn)一個(gè)簡(jiǎn)單的防抖函數(shù)?

    js中如何實(shí)現(xiàn)一個(gè)簡(jiǎn)單的防抖函數(shù)?

    前端入門(mén)之旅:探索Web開(kāi)發(fā)的奇妙世界 記得點(diǎn)擊上方或者右側(cè)鏈接訂閱本專(zhuān)欄哦 幾何帶你啟航前端之旅 歡迎來(lái)到前端入門(mén)之旅!這個(gè)專(zhuān)欄是為那些對(duì)Web開(kāi)發(fā)感興趣、剛剛踏入前端領(lǐng)域的朋友們量身打造的。無(wú)論你是完全的新手還是有一些基礎(chǔ)的開(kāi)發(fā)者,這里都將為你提供一

    2024年02月09日
    瀏覽(29)
  • Vue 3 中的極致防抖/節(jié)流(含常見(jiàn)方式防抖/節(jié)流)

    Vue 3 中的極致防抖/節(jié)流(含常見(jiàn)方式防抖/節(jié)流)

    各位朋友你們好呀。今天是立春,明天就是正月十五元宵節(jié)了,這種立春 + 元宵相隔的時(shí)候,可是很難遇到的,百年中就只有幾次。在這提前祝大家元宵快樂(lè)。 今天給大家?guī)?lái)的是 Vue 3 中的極致防抖/節(jié)流(含常見(jiàn)方式防抖/節(jié)流) 這篇文章,文章中不僅會(huì)講述原來(lái)使用的防

    2024年02月01日
    瀏覽(17)
  • 前端刷題-防抖節(jié)流

    在實(shí)際的開(kāi)發(fā)過(guò)程中,一般會(huì)使用lodash自有的debounce函數(shù)和throttle函數(shù)對(duì)所要防抖/節(jié)流的函數(shù)進(jìn)行包裹。例如

    2024年02月10日
    瀏覽(18)
  • 前端優(yōu)化 ----防抖 節(jié)流

    如果一個(gè)事件在短時(shí)間內(nèi)連續(xù)觸發(fā),則只去執(zhí)行最后一次。 控制頻率 實(shí)現(xiàn)方式:每次觸發(fā)事件時(shí)設(shè)置一個(gè)延遲調(diào)用方法,并且取消之前的延時(shí)調(diào)用方法 缺點(diǎn):如果事件在規(guī)定的時(shí)間間隔內(nèi)被不斷的觸發(fā),則調(diào)用方法會(huì)被不斷的延遲 使一個(gè)函數(shù)在固定時(shí)間內(nèi)只執(zhí)行一次??刂?/p>

    2024年02月04日
    瀏覽(21)
  • 【前端】防抖和節(jié)流原理+實(shí)現(xiàn)

    防抖(Debounce)和節(jié)流(Throttle)都是用于控制函數(shù)執(zhí)行頻率的機(jī)制,它們?cè)谔幚砀哳l觸發(fā)的事件時(shí)非常有用。 防抖的原理是在事件被觸發(fā)后,等待一段時(shí)間(例如200毫秒)來(lái)執(zhí)行函數(shù),如果在等待時(shí)間內(nèi)事件被再次觸發(fā),則重新計(jì)時(shí)。這樣可以避免在短時(shí)間內(nèi)多次觸發(fā)事件

    2024年04月16日
    瀏覽(24)
  • 節(jié)流防抖:提升前端性能的秘密武器(上)

    節(jié)流防抖:提升前端性能的秘密武器(上)

    ?? 前端開(kāi)發(fā)工程師(主業(yè))、技術(shù)博主(副業(yè))、已過(guò)CET6 ?? 阿珊和她的貓_CSDN個(gè)人主頁(yè) ?? ??透呒?jí)專(zhuān)題作者、在??痛蛟旄哔|(zhì)量專(zhuān)欄《前端面試必備》 ?? 藍(lán)橋云課簽約作者、已在藍(lán)橋云課上架的前后端實(shí)戰(zhàn)課程《Vue.js 和 Egg.js 開(kāi)發(fā)企業(yè)級(jí)健康管理項(xiàng)目》、《帶你從入

    2024年02月04日
    瀏覽(19)
  • 前端進(jìn)階版本 ,性能優(yōu)化—-防抖、節(jié)流、重繪與回流

    前端進(jìn)階版本 ,性能優(yōu)化—-防抖、節(jié)流、重繪與回流

    目錄 【防抖】 【節(jié)流】 重繪(repaint) 回流(reflow):又叫重排(layout) 工作中要如何避免大量使用重繪與回流? 常見(jiàn)的會(huì)導(dǎo)致回流的元素 【防抖】 任務(wù)頻繁觸發(fā)的情況下,只有任務(wù)觸發(fā)的間隔超過(guò)指定間隔的時(shí)候,任務(wù)才會(huì)執(zhí)行。 【節(jié)流】 指定時(shí)間間隔內(nèi)只會(huì)執(zhí)行一次任務(wù)。

    2024年02月14日
    瀏覽(22)
  • 前端解決按鈕重復(fù)提交數(shù)據(jù)問(wèn)題(節(jié)流和防抖)

    前端解決按鈕重復(fù)提交數(shù)據(jù)問(wèn)題(節(jié)流和防抖)

    ??*★,°*:.☆( ̄▽?zhuān)?/$:*.°★* ?? ??歡迎來(lái)到前端初見(jiàn)的博文,本文主要講解在工作解決按鈕重復(fù)提交數(shù)據(jù)問(wèn)題(節(jié)流和防抖) ????? 個(gè)人主頁(yè) : 前端初見(jiàn) ??喜歡的朋友可以關(guān)注一下,下次更新不迷路?? 當(dāng)我們?cè)陧?yè)面進(jìn)行點(diǎn)點(diǎn)點(diǎn)的操作時(shí),很可能遇到點(diǎn)擊兩次的行為,

    2024年02月09日
    瀏覽(21)
  • 前端常見(jiàn)面試題之防抖、節(jié)流、xss、xsrf

    輸入U(xiǎn)RL :在瀏覽器的地址欄中輸入要訪問(wèn)的網(wǎng)站的URL(統(tǒng)一資源定位符)。 DNS解析 :瀏覽器會(huì)將URL發(fā)送給DNS服務(wù)器,DNS服務(wù)器負(fù)責(zé)將URL解析為對(duì)應(yīng)的IP地址。 建立TCP連接 :瀏覽器會(huì)根據(jù)解析得到的IP地址,使用TCP(傳輸控制協(xié)議)與服務(wù)器建立連接。 發(fā)起HTTP請(qǐng)求 :TCP連接

    2024年01月19日
    瀏覽(17)
  • 了解防抖和節(jié)流:提升前端交互體驗(yàn)的實(shí)用策略

    本文將重點(diǎn)介紹前端性能優(yōu)化方法之一的防抖和節(jié)流。首先解釋了它們的概念和原理,然后探討了它們?cè)谇岸碎_(kāi)發(fā)中的應(yīng)用場(chǎng)景,如輸入框搜索、滾動(dòng)事件等。最后,通過(guò)簡(jiǎn)單的代碼示例展示了如何實(shí)現(xiàn)防抖和節(jié)流函數(shù)。通過(guò)學(xué)習(xí)和應(yīng)用這兩種技術(shù),我們可以有效地減少不必

    2024年02月05日
    瀏覽(22)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包