jQuery Datatable Ошибка загрузки больших данных 4Mb - PullRequest
0 голосов
/ 01 ноября 2019

Я использую jQuery Datatable v1.10.13 с реализацией serverSide. Таблица имеет четыре столбца. В последнем столбце у меня есть кнопка, позволяющая пользователю загрузить файл CSV. Содержимое файла CSV извлекается во время вызываемого данными вызова Ajax и обрабатывается в обратном вызове «dataSrc».

Сегодня я получаю данные размером около 4 МБ для одного файла CSV. При загрузке такого содержимого выдается ошибка выдачи данных с помощью jQuery, и обратный вызов «dataSrc» не запускается.

Отображение ошибки в предупреждении JS:

Предупреждение DataTables: идентификатор таблицы = DataTables_Table_0 - Ошибка Ajax. Для получения дополнительной информации об этой ошибке см. http://datatables.net/tn/7

В консоли Chrome написано:

Не удалось загрузить ресурс: сервер ответил со статусом 500 (Внутренняя ошибка сервера)

Несмотря на то, что я отлаживал код на стороне сервера и не сообщалось ни об исключениях, ни об ошибках.

Часть фрагмента кода:

"ajax": {
"url": ajaxUrl,
"type": "POST",
"dataType": "JSON",
"dataSrc": function (json) {

    let localCreatedDate = null;
    debugger;
    for (let i = 0; i < json.data.length; i++) {                        
        localCreatedDate = json.data[i].CreatedDateString;
        json.data[i].CreatedDate = json.data[i].CreatedDateString;
        json.data[i].FromDate = json.data[i].FromDateString;
        json.data[i].ToDate = json.data[i].ToDateString;
        json.data[i].Status = '<div class="ellipses-general-550" title="' + json.data[i].Status + '">' + (json.data[i].Status || "") + '</div>';
        json.data[i].Action = `<input type="button" value="Download" Class="btn btn-primary" onclick='download("csvuploaded ${localCreatedDate}.csv", "${json.data[i].CSVContent}")' />`; 
    }
    return json.data;
}

Даже япросто выберите одну строку (если эта строка содержит ~ 4MB содержимого CSV), появляется ошибка. Datatable прекрасно работает без этого файла-виновника.

Ищете некоторые решения или обходные пути. Спасибо.

...