Правь код отрисовки, 3 секунды это ненормально
Отличный пример, создавай не поэлементно dom, а блоками, набираешь в виде строки html - вставляешь (например построчно тег tr)
Еще момент, вместо рисования миллиона ячеек таблиц с данными, можно один раз отрендерить все, а затем менять их значения при скролинге. Заранее пропиши, чтобы размер ячеек не менялся от содержимого.
p.s. ты говоришь у тебя еще сама страница лагает, что ты там такое сделал?
Делай предварительную загрузку строк, т.е. вместо 1000 строк сразу грузи 2000 или больше (подбирать эмперически под стиль использования таблицы), но показывать продолжай только 1000, как окно среди уже загруженных.
При пролистывании вниз запускай ajax запрос подзагрузки данных ниже, при пролистывании вверх - выше, таким образом пока пользователь смотрит данные, приложение их подгружает.
$("#el").html(`<script type="text/javascript"> activeArr = ${data} ;</script>`);
console.log(typeof(data));
echo (json_encode($total)) ;
success: function (data) {
console.log(JSON.parse(data));
}
На стороне сервера мне сказали что корс отключен, думаю так и есть, потому что другие методы на тот же сервер проходят успешно, без проблем с корсом. Так же я пробовал делать запрос на том же сервер где и находится бек но на разных портах, проблема была таже, даже находясь на одном домене с бэком выдавал ошибку корса, пробовал еще через XMLHttpRequest, та же проблема. Если вам нужны скрины запросов, код и т.п могу отправить