Фильтрация данных в DataTable

onBeforeFilter: function (columnId, value, config) {
    if (columnId == "date")
        console.log("typeof value.end = " + typeof value.end)
    if ((columnId == "date" && typeof value.end != "undefined") || (columnId == "date" && value == "")) {
        filterlist[columnId] = value
    }
    else if (columnId != "date") {
        filterlist[columnId] = value
    }
    if (columnId == "") return;
    for (var key in filterlist) {
        if (filterlist[key] == "") {
            delete filterlist[key];
        }
    }
    if ((filterlist.date || {}).start && !filterlist.date.end) return;
    preloaderStatus(false)
    $$("SiteBase").clearAll();
    var xhr = new XMLHttpRequest();
    xhr.open('POST', '/filtering', true);
    xhr.setRequestHeader("Content-Type", "application/json");
    xhr.addEventListener("load", function () {
        window.countRecords = JSON.parse(xhr.response).countRecords
        $$('records').define("label", "Записи: " + countRecords);
        $$('records').refresh();
        $$("SiteBase").parse(JSON.parse(xhr.response).values)
        $$("SiteBase").refresh()

        const buttons = document.querySelectorAll(".mybtn");
        window.maxPages = Math.ceil(countRecords / limitList);
        currentPage = 1;
        setCookie("currentPage", 1)
        for (var i = 2; i < buttons.length - 2; i++) {
            if (buttons[i].classList.contains('currentPage')) {
                buttons[i].classList.toggle('currentPage');
            }
        }
        for (var i = 2; i < buttons.length - 2; i++) {
            if (Number(buttons[i].getAttribute("id")) > maxPages) {
                buttons[i].hidden = true;
            }
            else {
                buttons[i].hidden = false;
            }

            if (buttons[i].getAttribute("id") == getCookie("currentPage") || buttons[i].getAttribute("id") == currentPage) {
                buttons[i].classList.toggle('currentPage');
            }
        }
        preloaderStatus(true)
    });
    if (!window.logs) setCookie("filterList", JSON.stringify(filterlist))
    xhr.send(JSON.stringify({ user: getCookie("user"), filterlist: getCookie("filterList"), limit: limitList }));
}

У меня происходит такая проблема что при вставке например слова, отправляется огромное количество запросов, иногда даже вперемешку с другими фильтрами, которые уже были отчищены от значений, в чем может быть проблема?