情景描述:常見的搜索輸入框都有聯想功能,如果不加上防抖功能,它們會在用戶不斷輸入搜索條件過程中重複發送請求,這樣會浪費不必要的性能。比較合理的是在用戶停止輸入的間隙發送請求,這樣大大減少了請求次數,同時頁面也不會不停加載數據。
如果不加入防抖技術,就會出現下面這種情況:
當在搜索框中每輸入一個字母 就會發送一次請求,這非常不合理。
要解決這個問題,就要用到防抖技術。
代碼示例如下:
首先聲明一個全局的變量TimeID,然後在發送請求之前添加一個定時器,延時1秒鐘執行。
clearTimeout(this.TimeID);
this.TimeID = setTimeout(() => {
//4.準備發送請求獲取數據
this.getRequestData(value);
}, 1000);
添加防抖技術後的頁面效果:
這樣就可以實現在用戶輸入完成後發送一次請求查詢數據。