Задать вопрос

быстрые манипуляции со строками таблицы

Есть таблица на 5к строк. И необходимость скрывать/показывать выборки из 1к её строк. Обычный вариант $(#table .need_hide).hide() работает очень долго. Минуты в зависимости от браузера. Есть варианты сделать-таки это средствами js или переносить на сервер только?
  • Вопрос задан
  • 3442 просмотра
Подписаться 4 Оценить 3 комментария
Решения вопроса 1
anatoly_rr
@anatoly_rr
Очень здорово помогает такой приём: прописывать класс только одному, родительскому элементу и задавать видимость в css:

<style>
#sometable.do_hide .need_hide { display: none; }
</style>

...

$('#sometable').addClass('do_hide');
Ответ написан
Пригласить эксперта
Ответы на вопрос 7
aavezel
@aavezel
Веб девелопер
Если надо именно на JS — cамое быстрое отказаться от абстракций.

  var trs  = document.getElementById("table").getElementsByTagName("tr");
  for (var i=0; i<trs.length;i++){
    var tr = trs[i];
    if (tr.hasAttribute("class") && tr.getAttribute("class") == "need_hide"){
       tr.setAttribute("style", "display: none");
    }
  }
Ответ написан
@rudykh
Вы уверены, что вам действительно нужны 5 тысяч строк данных на одной странице? Я бы разбивал данные на стороне сервера на страницы строк по 50, например. А для поиска нужных данных — сортировка по различным колонкам + операция фильтрации + кнопочка Hide.
Ответ написан
barmaley_exe
@barmaley_exe
Попробуйте скрыть таблицу (необязательно через display:none, лучше через visibility:hidden), потом скрыть все строки, а потом снова показать таблицу.
Советую почитать: webo.in/articles/all/2009/31-rending-restyle-reflow-relayout/
Ответ написан
На сервер такое тоже не перенесешь, статический грид 5K будет грузится очень долго, я предлагаю вам попробывать не использовать table впринципе, а перейти на ul li, браузеры работают со списками гораздо быстрее, даже IE7, сам правда пробывал на тысячи записей, грид на js заполнялся очень долго, не говоря уж об IE который всю винду подвешивал. А вот со списками все гораздо веселее выглядело! плюс к этому совет от и я думаю будет побыстрее… строку внутри li элумента делайте inline элкментами, например span они быстрее div
Ответ написан
JeanLouis
@JeanLouis
Создайте 5 таблиц по 1к и скрывайте сами таблицы.
Ответ написан
@aaaDron
есть плагин для jquery www.trirand.com/blog/jqgrid/jqgrid.html (Advanced -> Search Big Sets) какраз для работы с большими таблицами
Ответ написан
zorba_buddha
@zorba_buddha
IT
Клиент не предназначен для обработки такого количества информации.
Если у кого-то комп не такой мощный как у вас будет или попутно запустят ещё пару весовых приложений — скорость ещё ниже будет.

Можете попробовать работать с загруженными данными в JSON, а не с таблицей, а саму таблицу генерить на ходу и вставлять в необходимое место — это будет ещё быстрее.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 дек. 2024, в 20:40
10000 руб./за проект
22 дек. 2024, в 20:34
3000 руб./за проект
22 дек. 2024, в 20:12
10000 руб./за проект