Фон:
У меня есть Datatable, который я создаю следующим образом в JS:
let mytable = $('#myTableId').DataTable();
Затем позже в моем коде я программно добавляю 5 строк в эту таблицу данных следующим образом:
for(let i=0; i<5; i++){
mytable.row.add(someVectorValuedFunction(i)).draw(false);
}
Проблема:
Каждый раз, когда строка вставляется в таблицу данных mytable, вызывается функция сортировки данных. Функция сортировки выполняется за O(n), т. е. она выполняет итерацию по каждой строке и решает, показать ли эту строку или скрыть ее. Следовательно, вставка n строк в mytable имеет эффективную сложность в наихудшем случае O (n ^ 2). Точная сложность примерно такова, что n(n-1) становится текущей агрегацией циклов сортировки.
Ограничение:
В какой-то момент мне нужно иметь возможность сортировать таблицу. Это означает, что любое решение, которое я нахожу, должно соответствовать способности таблицы сортировать ИЛИ мне нужно иметь возможность отключить, а затем включить сортировку в таблице.
Вопрос:
Как предотвратить вызов функции сортировки каждый раз, когда строка вставляется в таблицу данных jQuery?