Я использую плагин Datatables, чтобы получить данные таблицы с сервера с использованием свойства ajax и преобразовать его с использованием свойства dataSrc. Мой DataTables определение:datatables dataSrc функция не вызвана для успешного ответа ajax
var my_table = $('#my_table').dataTable({
"processing": true,
"serverSide": true,
"ajax": {
"url": "/my/url",
"type": "POST",
"dataSrc": function(json) {
console.log('json', json);
return format_my_table_data(json.data);
}
},
"deferLoading": found_rows,
"data": initial_my_table_data,
"ordering": true,
"order": [[1, "desc"]],
"lengthMenu": [
[25, 50, 100],
[25, 50, 100]
],
"columns": my_table_columns
});
Начальная нагрузка работает отлично, и заказ колонок и поисковых работ иногда но в основном я вижу возвращение Ajax вызова успешно с действительным JSON (я проверил с помощью jsonlint.com) и таблица застревает в «Обработка ...» иногда или таблица просто не меняется вообще.
Json с сервера: {"recordsTotal":379,"recordsFiltered":378,"draw":25,"data":[{...}]}
При проверке сети в консоли я могу увидеть запрос Ajax посылает и ответ, который похож каждый раз (с общим временем между 600 мсом и 1600ms в зависимости от количество возвращаемых строк), но моя консоль.log внутри функции dataSrc не вызывается и ошибок в javascript в консоли. Что дает?
Вы возвращаете тот же параметр 'draw', который был получен по запросу на сервере? Плагин может отменить ответ, если значения 'draw' в запросе и ответе не совпадают. –
@ Gyrocode.com, что относительно случая, когда количество возвращенных результатов меньше значения рисования, скажем, вы только смогли найти 3 строки, если значение рисования равно 3? Или, может быть, я неверно истолковываю, что такое «рисовать». –