【发布时间】:2013-01-12 05:16:53
【问题描述】:
我在用户输入 <input> 元素时向服务器发送 ajax 请求,如下所示:
$('#my-input').bind("input", function(event){
// here's the ajax request
});
困扰我的是它在每个用户的keyup上发送了不必要的许多请求,这意味着如果用户键入非常快,就会有许多不必要的请求。所以我认为应该有一定的延迟/超时,等待一定的时间(50 毫秒?)让用户在发送 ajax 请求之前停止输入。这样就解决了一个问题。
但是在发送另一个请求之前第一个 ajax 请求还没有完成的情况呢? (键入 60 毫秒/字符,而 ajax 请求需要 300 毫秒)。
解决这个问题的最佳方法是什么(基于想法和代码)?
【问题讨论】:
-
您是想捕捉每一次击键,还是只想捕捉结束信息(模糊)?
-
@sgeddes:我不想要每次捕获,我想要结束消息,但最后没有模糊(用户不必取消单击该区域)。
-
只有捕获输入选项吗?或忽略退格 - 不知道这是否真的有很大帮助
标签: javascript jquery ajax