DOM幾個場景的優化場景?

2022-07-09 11:03:11 字數 1222 閱讀 5925

問題:在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.在老表...