Я построил большую таблицу в бутстрапе, около 5000 строк по 10 столбцов, и мне нужно отфильтровать таблицу для определенных атрибутов, быстро, используя только JavaScript. Таблица имеет как столбец идентификатора, так и столбец атрибутов, т.е.
id | attr | ...
---------------
2 | X | ...
3 | Y | ...
4 | X | ...
Чтобы ускорить процесс фильтрации, я построил таблицу хеш-таблицы, которая сопоставляет атрибуты с идентификаторами столбцов. Так, например, у меня есть отображение:
getRowIds["X"] = [2,4]
Пользователь может ввести атрибут "X" в поле поиска, хеш-таблица затем ищет соответствующие строки, которые содержат "X" (в этом случае 2 и 4), а затем вызывает следующие операции с помощью операции карты:
this.hideRow = function(id) {
document.getElementById(id).style.display="none"
}
this.showRow = function(id) {
document.getElementById(id).style.display=""
}
Этот процесс все еще довольно медленный, так как пользователю разрешено выбирать несколько атрибутов (например, X, Y).
Есть ли более быстрый способ спрятать строки?
Было бы быстрее, если бы я мог каким-то образом отсоединить таблицу от DOM, внести изменения, а затем снова подключиться? Как это сделать в javascript?
Существуют ли другие более эффективные/более умные способы фильтрации?
Спасибо:)