給定一個(gè)簡(jiǎn)單的文本框來回答問題,您將如何在用戶鍵入時(shí)保存答案?假設(shè)答案被更新。使用一個(gè)有點(diǎn)天真的 onChange 處理程序示例并使用該 onChange 中的 API 保存答案,我遇到了兩個(gè)問題:從客戶端向 API 發(fā)送似乎太多的補(bǔ)丁請(qǐng)求,因?yàn)槊看屋斎胛谋究虼鸢付紩?huì)更改。如果使用 postgres upsert 或創(chuàng)建你自己的,那么如果用戶快速輸入,onChange 處理程序發(fā)出的第二個(gè)請(qǐng)求可能看不到第一個(gè)請(qǐng)求,為該文本框創(chuàng)建重復(fù)記錄(一個(gè)問題的兩個(gè)答案)我需要預(yù)先執(zhí)行查詢以在更新之前獲取必要的關(guān)系值,因此 HTTP 等待時(shí)間相當(dāng)長(zhǎng)?,F(xiàn)在解決這個(gè)問題,但似乎沒有解決上述兩個(gè)問題。我想只在用戶按下空格鍵時(shí)保存,但這看起來很老套。通常當(dāng)然我會(huì)在點(diǎn)擊提交按鈕后保存,但在這種情況下,它必須是用戶輸入的。有什么建議/意見嗎?干杯。編輯:還嘗試在 onBlur 中保存。但這并不總是根據(jù)用戶點(diǎn)擊的位置來調(diào)用。
1 回答

慕萊塢森
TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超4個(gè)贊
它是否必須為每個(gè)按鍵修補(bǔ)數(shù)據(jù),或者您可以使用延遲嗎?
例如...
用戶開始輸入:注冊(cè)事件,設(shè)置超時(shí)時(shí)間,比如 3 秒
如果用戶繼續(xù)輸入:將超時(shí)重置為完整的 3 秒
如果用戶暫停輸入 + 3 秒通過:用新值修補(bǔ)數(shù)據(jù)
當(dāng)用戶恢復(fù)輸入時(shí):設(shè)置另一個(gè)超時(shí)
- 1 回答
- 0 關(guān)注
- 123 瀏覽
添加回答
舉報(bào)
0/150
提交
取消