Повышение производительности загрузки нескольких DataTable на одной странице - PullRequest
0 голосов
/ 27 марта 2020

Мне нужно загрузить 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 и не смог найти решение своей проблемы. Интересно, есть ли какой-нибудь способ сделать данные доступными асинхронно, чтобы предотвратить этот запаздывающий опыт? Или есть лучший способ сделать то, что я хочу достичь.

...