Можно ли ускорить этот вызов Ajax JSON для использования с таблицами данных? - PullRequest
0 голосов
/ 19 июня 2020

Мой веб-сайт: https://usedlens.co.uk/

Google Dev Tools - детали заголовка XHR, вы можете видеть, что он вызывает https://usedlens.co.uk/data.cfc?method=getData

  • На производстве требуется ~ 12 секунд для загрузки 3,6 МБ
  • При разработке требуется <1 секунды для загрузки 22,9 МБ </li>

Разработка и производство имеют примерно одинаковое количество данные и код такие же.

Я экспериментировал с использованием обработки на стороне сервера, и он загружает данные быстрее на 3-4 секунды, но разбивка на страницы / поиск / сортировка имеют одинаковый ответ 3-4 секунды время. Поэтому я остановился на опции ajax.

Инициализация моей таблицы данных

var resultsTable = $('#resultsTable').DataTable(
    {
        'serverSide': false,
        'deferRender': true,
         'ajax': {
            'url': 'data.cfc?method=getData'
         },
         'columns': [            
            { 'data': 'productname' },
            { 'data': 'price' },
            { 'data': 'retailersite' }
         ],
        'columnDefs': [
           { "targets": [1,2], "searchable": false },
           { "width":"10%","targets": [1]},
           { "width":"20%","targets": [2]}
         ]
    }
);

Я заменил свой источник CF C текстовым файлом JSON, он по-прежнему занимает 8- 11 секунд.

Могу я что-нибудь сделать, чтобы ускорить это?

1 Ответ

1 голос
/ 20 июня 2020

Я переключился на обработку на стороне сервера

https://datatables.net/examples/server_side/

Таким образом, я прошел только через текущие записи в поле зрения (10/25/50/100 ) вместо всех 50 000.

Это был не первый раз, когда я пробовал это, но на этот раз я исправил ошибки в моем коде, из-за которых он работал медленно.

Правильно реализованный, он работает хорошо.

...