取消Ajax请求或取最后一个请求

时间:2015-12-04 11:07:16

标签: jquery ajax

我有一个搜索栏,显示input内容的结果。因此,当用户按下request ajax 中的某个键时,我会发送input

但是,如果我的request太长而无法加载包含许多元素的大结果(例如Red),那么它会重新填充我的小而精确的结果(如Red Small Square)。

我需要知道如何在发送新ajax之前取消request或如何取消最后一个{。}。

<script type="text/javascript">
    var content = $( 'div#result' );

    $( 'input#search' ).keyup( function() {
        $.ajax({
            url: 'jquery/search.php',
            type: 'POST',
            data: $( this ).serialize()
        }).done(function ( data ) {
            content.empty().append(data);
        });
    });
</script>

2 个答案:

答案 0 :(得分:7)

你可以使用abort()方法,将ajax对象分配给变量并检查变量是否null看下面的示例代码

var xhr = null;
 $( 'input#search' ).keyup( function() {
        if(xhr !== null){
             xhr.abort();
             xhr = null;
        }
        xhr = $.ajax({
            url: 'jquery/search.php',
            type: 'POST',
            data: $( this ).serialize()
        }).done(function ( data ) {
            content.empty().append(data);
        });
    });

答案 1 :(得分:-4)

使用&#34; async&#34; jquery ajax调用中的选项(true | false)