Jus*_*tin 4 javascript ajax jquery
所以我在文本框上的jQuery中调用每个keyup和paste事件的AJAX请求:
$("#server-label").bind("keyup paste", function() {
$.ajax()...
});
Run Code Online (Sandbox Code Playgroud)
问题是如果用户快速按下键,这就是太多的AJAX请求.在调用AJAX请求之前,等待用户停止输入一段(比如500ms)之前等待的最佳方法是什么.基本上不要发出AJAX请求,直到没有键或粘贴事件触发500ms.
谢谢.
Fab*_*tté 13
尝试使用setTimeout()和timervar来跟踪它:
var t;
$("#server-label").on("keyup paste", function() {
clearTimeout(t);
t = setTimeout(function() {
$.ajax({/*[...]*/});
//...
}, 500);
});
Run Code Online (Sandbox Code Playgroud)
您也可以使用节流或去抖,但我认为如果将代码包装在函数对象或字符串中以传递给setTimeout()函数,则认为没有必要.
| 归档时间: |
|
| 查看次数: |
1726 次 |
| 最近记录: |