我的表格如下:
@using (Ajax.BeginForm("List", null, new AjaxOptions() { UpdateTargetId = "results" }, new { id = "myform" }))
{
<input id="search" type="text" value="" />
}
当用户在我的搜索框中按下某个键时,我声明javascript发送提交:
<script type="text/javascript">
$("#search").on("keyup", function ()
{
$("#myform").submit();
});
</script>
但是当用户快速搜索时,浏览器会启动多个ajax请求,并逐个等待每个调用的结束。 如何在发送另一个之前停止之前的ajax调用而不删除ajax不显眼?
答案 0 :(得分:0)
我建议不要直接拨打$("#myform").submit();
将其分解为$ .ajax()请求&amp;如果在再做一次之前中止
$("#search").on("keyup", function (){
var xhr;
if (xhr){
xhr.abort(); //stop previous ajax
}
xhr = $.ajax({
type: "GET",
url: "@Url.Action(list)",
data : {formdata : $("#myform").serialize() },
success: function(response){
// do some stuffs with $("#results")
}
});
});