在Ajax请求中处理搜索的最佳方法

时间:2018-01-13 09:33:59

标签: jquery ajax request

我在keyup事件上有搜索结果以下是我的代码,如果在keyup事件上触发

  function GetAllThirdParty(pageIndex, Type) {
    $.ajax({
        type: "POST",
        url: "ManageThirdParty.aspx/GetAllThirdParty",
        contentType: "application/json; charset=utf-8",
        data: '{Category: "' + $('#ddlCategoryFilter option:selected').attr('data-category') + '", pageIndex: ' + pageIndex + ', ' +
            'PageSize: ' + $('#ddlRecordsPerPage').val() + ', searchTerm: "' + SearchTerm() + '", Alphabate: "' + $('#hdnAlphabate').val() + '"}',
        beforeSend: function () {
            $('#tblThirdParty').dataTable().fnDestroy();
            $('#tblThirdParty > tbody').empty();
        },
        success: function (data) {
        }
    });
}

当我输入较慢时,搜索结果是完美的, 但每当我输入更快(对于相同的单词)搜索结果给我错误的数据,因为启动GetAllThirdParty()而没有完成当前的执行。

如果我设置超时,那么搜索结果会给我正确的结果但是需要很多时间才能执行。

如何克服这种情况?

1 个答案:

答案 0 :(得分:1)

如果存在之前,您必须为ajax请求命名并在每次调用时将其中止:

const output = {'id1' : 'Morning run', 'id2' : 'Evening run'}