DataTables - elimine solicitações de ajax quando uma nova é iniciada
Estou usando o DataTables 1.10.15 no modo do lado do servidor.
Estou passando o conteúdo de um formulário para um script PHP via ajax para pesquisar um banco de dados:
var myTable = $('#myTable').DataTable( {
"processing": false,
"serverSide": true,
"searching": false,
"ajax": {
"url" : "/getData.php",
"data" : function ( d ) {
// Search input data
d.field1 = $('#field1').val(),
d.field2 = $('#field2').val(),
d.field3 = $('#field3').val()
},
"method" : "POST",
}
});
Eu tenho alguns outros js que verifica pelo menos 3 caracteres inseridos em um campo antes de disparar a solicitação ajax para/getData.php
.
Isso significa - após 3 caracteres serem inseridos - que uma solicitação ajax é feitacada vez uma tecla é pressionada, para que possa haver uma fila de solicitações de ajax.
$('#primarySearch input[type="text"]').on({
"keyup": function(e) {
// Ignore tab key.
if (e.which != 9) {
processPrimarySearch.call(this);
}
}
});
/* Handle Primary Search */
function processPrimarySearch() {
var obj = $(this),
search_id = obj.attr('id'), // e.g. #field1
search_value = obj.val(); // e.g. '123-456'
/* Wait until at least 3 characters have been entered, or user has cleared the input */
if (search_value.length >= 3 || (!search_value) ) {
myTable.draw();
}
}
Como posso eliminar as solicitações ajax anteriores sempre que uma nova é feita, para que elas não fiquem na fila dessa maneira? Eu liComo posso parar todas as consultas do Ajax atualmente em andamento iniciadas pela instância do DataTables? mas a solução é para uma versão mais antiga do DataTables e a resposta aceita não parece funcionar para mim.