我在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()
而没有完成当前的执行。
如果我设置超时,那么搜索结果会给我正确的结果但是需要很多时间才能执行。
如何克服这种情况?
答案 0 :(得分:1)
如果存在之前,您必须为ajax请求命名并在每次调用时将其中止:
const output = {'id1' : 'Morning run', 'id2' : 'Evening run'}