Datatables jquery ошибка ajax canceled

Я реализую каталог kardex служащего, где у меня есть 2 инстанции plugin datatables :

Первый просьба реализует правильным способом но вторым наследством ошибку ajax canceled.

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

То, чего я добился до сих пор, состоит в том, чтобы помещать один delay: 500 в просьбе но этом решении он мне не нравится

какой-то совет?

Post на английском, как кажется, - та же проблема

introducir la descripción de la imagen aquí

introducir la descripción de la imagen aquí

1
задан 31.05.2017, 20:33
4 ответа

Способ контролировать возможные ошибки, получив данные vГ - в AJAX, - используя 2 функции.

Пример:

FunciГіn getAllUsers: Ответственная называть данные.

FunciГіn mostrarDatosDataTable: Ответственная наполнять datatable и мочь отображать данные.

VersiГіn Хкери Дататаблес: 1.10.7

//Global variables
var oTableTR;

//función que muestra los datos en el datatable
function mostrarDatosDataTable(result) {
    try {
        oTableTR = $('#listaDatosDt').DataTable({
            "aLengthMenu": [[15, 30, 60, 120, -1], [15, 30, 60, 120, "All"]],
            "bProcessing": true,
            "scrollX": true,
            "aaData": result,
            "aoColumns": [
                { "mDataProp": "usuarioId" }, { "mDataProp": "usuarioNombre" }, { "mDataProp": "usuarioDocumento" }, { "mDataProp": "usuarioEstado" }
            ],
            "aaSorting": [[0, "desc"]]
        });
    } catch (exception) {
        message("Error", "Attention", "error");
    }
    return false;
};

//función que llama los datos
var getAllUsers = function () {
    var datae = { 'param': 'param' };
    $.ajax({
        type: "POST",
        url: "WebServices/Usuarios.asmx/GetAllUsers",
        contentType: "application/json; charset=utf-8",
        data: JSON.stringify(datae),
        dataType: "json",
        success: function (result) {
            var data = result.d;
            try {
                var dataJson = $.parseJSON(data);
                if (dataJson.status === "ok") {
                    oTableTR = $('#listaDatosDt').DataTable();
                    oTableTR.destroy();
                    try {
                        mostrarDatosDataTable(dataJson.data);
                    } catch (exception) {
                        message("Error", "Attention", "error");
                    }


                } else {
                    if (dataJson.data === "NoSession") {
                        document.location.href = "index.html?BackPageSession=NoSession";
                    } else {
                        message("Error", "Attention", "error");
                    }
                }
            } catch (e) {
                message("Error", "Attention", "error");
            }

        },
        error: function (error) {
            message("Error", "Attention", "error");
        }

    });
    return false;
}

//llamado función
getAllUsers();
3
ответ дан 01.12.2019, 08:11

Возможно, если твоя проблема - одновременное выполнение различных инстанций pluging с Вашими соответствующими вызовами ajax, я попробовал бы конфигурировать ajax не асинхронной формы (async:false). Desconosco если этот выбор возможный в pluging, но это свойство ajax из-за qie оно было должно функционировать. Удачи!

1
ответ дан 01.12.2019, 08:11

ты можешь вновь не инициализировать таблицу то, что ты можешь делать, состоит в том, чтобы отлаживать таблицу и вновь заселять ее реестров.

// instancias la tabla
if ( ! $.fn.DataTable.isDataTable('#you_table') ) {
    oTable = $('#you_table').dataTable(options);
}else{
    oTable = $('#you_table').dataTable();
}

// Limpiar registros
oTable.fnClearTable();

// Poblar la tabla - pueder usar for(){} de javascript o jquery
// yourData representa tu arreglo de kardex del empleado
$.each( yourData , function(index, valor){
   oTable.fnAddData(valor);
});
1
ответ дан 01.12.2019, 08:11

Не возможно повторно включать таблицу, которая уже инициализировалась из-за DataTable. Для этого ты должен подкреплять, если таблица инициализировалась этой функцией:

if ( ! $.fn.DataTable.isDataTable( '#example' ) ) {
  //Inicializar dataTable.
  $('#example').dataTable();
}

С этой функцией, не была бы должна отменять тебя вторая просьба, которая появляется в твоем изображении, и продвигаться правильно с остальными просьбами. Здесь документация: Док

0
ответ дан 01.12.2019, 08:11
  • 1
    Привет спасибо за ответ у меня есть 3 инстанции различные oTable = $ (и #39; #listado и # 39;) .dataTable ({}); oTableEmpleados = $ (и #39; #listadoEmpleados и # 39;) .dataTable ({}); oTable = $ (и #39; #listadoDetalle и # 39;) .dataTable ({}); каждая с вашей собственной конфигурацией –  Gussjq 06.01.2016, 19:09
  • 2
    @Gussjq ok, тогда это не проблема, не podr и # 237; схвати помещать деталь ошибки cancelaci и # 243; n petici и # 243; n? –  MBahamondes 06.01.2016, 19:12
  • 3
    Это код, где - instacionas plugin github.com/gussjq/error_datatables/blob/master/kardex.js –  Gussjq 06.01.2016, 19:15

Теги

Похожие вопросы