如果需要一段时间,我如何中止ajax请求?

时间:2017-04-25 15:54:07

标签: javascript jquery ajax algorithm performance

这是我的代码:

$("input").on('keydown', function(){
    $.ajax({
        url :  '/files/tags_autocomplete.php',
        dataType : 'JSON',
        success : function (tags) {
            $("ul").html(tags.output);
        }
    });
});

它运作良好,一切都很好。有时候tags_autocomplete.php会在 8秒 (太多)之后返回响应,或者有时它完全失败并且不会返回响应。

无论如何,我想建立一个something went wrong机制,在发送该ajax请求后应该运行 4sec 。我怎么能这样做?

1 个答案:

答案 0 :(得分:4)

您可以指定超时

你可以在超时后发现错误

$("input").on('keydown', function(){
    $.ajax({
        url :  '/files/tags_autocomplete.php',
        dataType : 'JSON',
        success : function (tags) {
            $("ul").html(tags.output);
        },
        error : function (jqXHR, textStatus, errorThrown) {

        },
        timeout: 4000
    });
});

文档http://api.jquery.com/jQuery.ajax/