我使用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