問題:在input的onchange事件中進行實時請求,當輸入框輸入發生改變時就會傳送一次請求。比如輸入react
解決方式:新增防抖功能,設定乙個合理的時間間隔,避免時間在時間間隔內頻繁觸發,同時又能保證輸入後可以看到結果
// **1
// 每次value改變,就會發出一次請求
const handlechange = async (}) => )
}
// **2
// 通過定時器。設定時間間隔500ms執行一次請求
let timer = null
const handlechange = (}) =>
timer = settimeout(async () => )
}, 500)
}
// **3
// 公共函式抽取
/*應有的功能
1. 引數和返回值如何傳遞?
2. 防抖之後函式是否可以立即執行?
3. 防抖的函式是否可以取消?
*/const debounce = (func, wait = 0) =>
// 以promise形式返回函式執行結果
return new promise((res, rej) => catch (e)
}, wait)})}
// 取消方法
function cancel()
// 立即執行
function fulsh()
debounced.cancel = cancel
debounced.flush = flush
return debounced
}
事件觸發流程
捕獲階段:事件物件window傳播到目標的父物件,紅色過程
目標階段:事件物件到達事件物件的時間目標,藍色過程
冒泡階段:時間物件從目標物件的父節點開始回到window,綠色過程
dom事件標準
const ul = document.queryselector('.list')
ul.addeventlistener('click', e => else else if (t.classlist.contains('delete')) }})
計數場景的優化
前言 社交網路資訊爆發,如何衡量你在社交 上的影響力?計數!今天著重介紹下redis在計數器場景上的應用。正文 對於計數器大家肯定還有或多或少的疑問。q1 計數從 來?通常我們發布的社交內容會儲存在資料庫中,最常見的如mysql 更新索引 insert into user message uid,m...
HINT無效的幾個場景
碰巧看見了dba oracle上的乙個問題,算是基礎性問題,問題就是某些檢索中,即使指定了index hint,可能無效。回答是,如果這個index hint的語法格式錯誤,就會只將他看作乙個注釋,不會應用這個hint。inindex hint的標準用法是 index table name,inde...
特定場景下SQL的優化
1.大表的資料修改最好分批處理。1000萬行的記錄表中刪除更新100萬行記錄,一次只刪除或更新5000行資料。每批處理完成後,暫停幾秒中,進行同步處理。2.如何修改大表的表結構。對錶的列的字段型別進行修改,改變字段寬度時還是會鎖表,無法解決主從資料庫延遲的問題。解決辦法 1.建立乙個新錶。2.在老表...