我使用VueJS作爲我的應用程序的前端,Laravel作爲後端。用自由文本搜索減少對服務器的呼叫的最佳場所在哪裏?限制自由文本搜索
搜索輸入「你好」
@keyup
將使5服務器請求
1st = h
2nd = he
3rd = hel
4th = hell
5th = hello
理想情況下,我希望能夠停止服務器的請求,直到用戶停止打字,或推遲塑機按鍵。這樣我只會發送1或2個請求到服務器進行每次搜索。
我使用VueJS作爲我的應用程序的前端,Laravel作爲後端。用自由文本搜索減少對服務器的呼叫的最佳場所在哪裏?限制自由文本搜索
搜索輸入「你好」
@keyup
將使5服務器請求
1st = h
2nd = he
3rd = hel
4th = hell
5th = hello
理想情況下,我希望能夠停止服務器的請求,直到用戶停止打字,或推遲塑機按鍵。這樣我只會發送1或2個請求到服務器進行每次搜索。
每另一個按鍵時我解決這個問題是通過將請求超時的方式,以及復位超時。
這使得請求只在沒有按下特定時間的情況下完成。
function keyPressed() {
if (window.ajaxtimeout)
clearTimeout(window.ajaxtimeout);
window.ajaxtimeout = setTimeout(function() {
// Ajax request
}, 300);
};
本示例將在發送ajax請求之前等待鍵擊之間的300毫秒。我發現這是一個很好的價值。
使用此,它的完美 –
你有多個解決方案:
setTimeOut()
功能,一旦用戶按下一個按鈕,例如,他可以有300ms以內按下一個按鈕啓動服務器請求之前。
可能重複的(https://stackoverflow.com/questions/4220126/run-javascript-功能 - 當用戶完成時鍵入 - 而不是鍵 - 鍵) – Troyer
在向服務器發送請求之前,您應該在VueJS中使用節流技術。它通常在vanilla JS中用'setTimeout'完成,你可以在網上找到很多資源。 – TheFallen