Посылать просьбу ajax в datatables, прекратив писать

Я требую делания просьбы ajax в мой драйвер, написав слова поисков во мне input datatables.

Точка, в которую я хочу прибыть, состоит в том, чтобы он не сделал просьбы из-за каждого письменного символа, а до тех пор, пока не проведет немного времени нажатого кредита последняя клавиша.

Это мой код как эта, объявленная таблицу

var table = $('#tableComprobantes').dataTable({
    "order": [[5, "desc"]],
    "sDom": "<'row'<'col-xs-6'l><'col-xs-6'f>r>t<'row'<'col-xs-6'i><'col-xs-6'p>>",
    "sPaginationType": "sangoma",
    "oLanguage": {
    "sLengthMenu": "_MENU_ comprobantes por página",
    "sInfo": "Mostrando _START_ a _END_ de _TOTAL_ comprobantes",
    "sInfoEmpty": "Sin comprobantes a mostrar",
    "sInfoFiltered": "(Filtrado de _MAX_ comprobantes totales)",
    "sSearch": "Filtro:",
        "sZeroRecords": "Sin comprobantes encontrados"
    },
    "bProcessing": true,
    "bServerSide": true,
    "sAjaxSource": "/Portal/listComprobantes",
    "fnRowCallback": function (nRow, aData, iDisplayIndex, iDisplayIndexFull) {
        $('td:eq(7)', nRow).attr('align', 'center');
        $('td:eq(8)', nRow).attr('align', 'center');
        return nRow;
    },
    "aoColumns": [
        { "bSortable": false },
        { "bSortable": true },
        { "bSortable": true },
        { "bSortable": true },
        { "bSortable": true },
        { "bSortable": true },
        { "bSortable": true },
        { "bSortable": false },
        { "bSortable": false },
        { "bSortable": true }
    ]
});

4
задан 31.05.2017, 20:53
2 ответа

Ты можешь делать это полностью, как ты хочешь следующего способа:

Сначала с unbind ты удаляешь событие из-за недостатка фильтра (каждый pulsaciГіn).

$('#x_filter input').unbind(); // 'x' es el nombre de tu tabla

И despuГ©s просто он aГ±ades фильтр, нажав enter:

$('#x_filter input').bind('keyup', function(e) {
   if(e.keyCode == 13) {
   table.fnFilter(this.value);  // 'table' es la tabla, que has de tener iniciada.
}
2
ответ дан 24.11.2019, 13:37

Ты можешь использовать выбор searchDelay (доступный начиная с версии 1.10.3 из DataTables). Это перевод, (свойственный) описанию на этой веб-странице:

Глобальные поиски, включенные в DataTAbles (по умолчанию в верхней прямой части каждого DataTable) будет искать мгновенно таблицу с каждой клавишей, нажатой на способ клиент и сведи частоту так называемой автоматизации к 400 миллисекундам, когда обрабатывается в способе сервер. Эта частота вызова (throttling) может контролироваться используя параметр searchDelay в обвиняемом так стороны клиента как стороны сервера.

[...]

Стоимость, данная в searchDelay он будет в миллисекундах (м).

Тогда чтобы использовать searchDelay, только ты был бы должен добавлять новый выбор, создав DataTable. Например:

var table = $('#tableComprobantes').dataTable({
    ....
    searchDelay: 500,
    ....
});

Это будет способствовать тому, чтобы ожидался второй способ (500 миллисекунд) перед тем, как реализовывать просьбу поисков AJAX в сервер.

2
ответ дан 24.11.2019, 13:37
  • 1
    Я сделал доказательства, но всегда он посылает мне просьбу как только я начинаю писать и в шаг 500ms вновь делай другую просьбу независимо, если я продолжаю писать не, если это был вирус или эксперт и # 237; это Ваша функциональность – JuankGlezz 18.08.2016, 18:23