Узким местом здесь почти наверняка является DOM (методы, встроенные в браузер), а не какой-либо конкретный код JS.
Если вы отображаете достаточно данных, чтобы обновить его, браузер блокируется на несколько секунд,вы должны рассмотреть возможность использования виртуальной сетки прокрутки.Мой любимый SlickGrid .
Вместо того, чтобы просто рендерить гигантскую таблицу, вы сохраняете свой набор данных в гораздо более легких JS-объектах в памяти.(Который, следовательно, может быть изменен и отсортирован на порядок быстрее, чем обновления, основанные на DOM, которые вы в настоящее время делаете.) SlickGrid отображает элементы DOM только для той части таблицы, которую вы просматриваете, так что нагрузка на них намного меньшев браузере.
Вы также можете выбрать загружать небольшие порции своего набора данных за раз (бэкэнд реализован как простая нумерация страниц), что дает вам возможность эффективно отображать бесконечные строки вбраузер с постоянной производительностью.