Datatables: браузер зависает после загрузки ajax - PullRequest
2 голосов
/ 24 сентября 2019

Проблема: Браузер зависает после загрузки и отображения данных Ajax

У меня проблемы с производительностью при использовании Datatables, я использую обработку на ajax / server, но столкнулся с некоторыми очень серьезными проблемами с производительностью.

Выше определенного количества загруженных строк (50+) строки появляются в таблице, но через 2-3 секунды вкладка браузера замирает (ничего не нажимается, никаких всплывающих подсказок ..) в зависимости от количества строкна несколько секунд.Более 1000 строк создают постоянное замораживание, вкладка должна быть закрыта и страница перезагружена.

Кто-нибудь сталкивался с таким поведением в прошлом?Это как строки обрабатываются и после того, как все готово, браузер внезапно зависает на несколько секунд.

Серверная часть: Debian 10 Laravel 5.8 (+ yajra / laravel-datatables)

Браузер: Chrome 77 (проблема также возникает в текущей версии Firefox)

My Datatable Config:

    var table = $('#tblCashflow').DataTable({
    processing: false,
    serverSide: true,
    searching: true,
    bfilter: false,
    paging: true,
    bLengthChange: false, //dropdown show x entries
    info: true,
    searchDelay: 3000,
    ajax: {
        url:$('#routeCashflowTable').val(),
        method:'post'
    },
    columns: [
        { data: 'client_name',  name: 'client_name',   orderable: false,   searchable: true   },
        { data: 'study_name',   name: 'study_name',    orderable: false,   searchable: false  },
        { data: 'product_name', name: 'product_name',  orderable: false,   searchable: true   },
        { data: 'body_area',    name: 'body_area',     orderable: false,   searchable: false  },
        { data: 'date_time',    name: 'date_time',     orderable: false,   searchable: false  },
        { data: 'price',        name: 'price',         orderable: false,   searchable: false  },
        { data: 'client_id',    name: 'client_id',     orderable: false,   searchable: true, visible: false   },
    ],

    "language": {
        "url": "/custom/datatables/dataTables.german.lang"
    },

});

1 Ответ

0 голосов
/ 25 сентября 2019

Бьюсь об заклад на некоторые обработки JavaScript.Включите профилировщик в браузере и посмотрите, что ест процессор.Это может быть «тривиальное» вычисленное значение, пересчитываемое снова и снова… Профилировщик скажет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...