1

我有一个像这样的表格:

@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 unobtrusive ?

4

1 回答 1

0

我建议不要直接调用$("#myform").submit(); Break it down to an $.ajax() request & abort if before make another

$("#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")
             }
      });                  

});
于 2017-10-10T18:53:43.103 回答