Мне нужно загрузить 10 таблиц данных на одной странице, однако я столкнулся с проблемой производительности, из-за которой на показ всех таблиц уходит 10 секунд. Производительность в IE еще хуже, так как она заставляла браузер зависать некоторое время, прежде чем все возвращается в нормальное состояние.
Я отрисовываю эти dataTables, помещая функцию инициализации в a для l oop и зацикливание. Поскольку данные извлекаются из API, я поместил этот l oop в запрос ajax. Ниже приведен пример моего кода. Я не включил подкачку страниц, поскольку число строк не превышало бы 12.
$.get(api_url, function(data) {
for (var index = 0; index < data.length; index++) {
var this_data = data[index];
$table[index] = $('.personal').on('processing.dt', function(e, settings, processing) {
$('#processingIndicator').css('display', 'none');
if (processing) {
$(e.currentTarget).LoadingOverlay("show");
} else {
$(e.currentTarget).LoadingOverlay("hide", true);
}
}).DataTable({
"data": this_data,
'deferRender': true,
"columns": [{
"data": "dataOne"
}, {
"data": "dataTwo"
}, {
"data": "dataThree"
}, {
"data": "dataFour"
}],
paging: false,
searching: false,
ordering: false,
info: false
});
}
});
Я искал на форуме Datatables и не смог найти решение своей проблемы. Интересно, есть ли какой-нибудь способ сделать данные доступными асинхронно, чтобы предотвратить этот запаздывающий опыт? Или есть лучший способ сделать то, что я хочу достичь.