@kirill-93

Как правильно сделать обработку большого количества элементов DOM?

Есть интернет магазин с 1000+ категорий. У каждой категории в скобочках указано количество товаров в этой категории. Также есть аякс фильтр. После изменения фильтра лишние товары убираются и у всех категорий нужно поменять количество цифр в скобках. С сервера ответ приходит быстро, а вот на клиенте эта операция отрабатывает пару секунд, причем весь интерфейс зависает на это время.
Ответ с сервера в формате
[{'product_id' : 'count'}, {'product_id' : 'count}]

Обхожу циклом и проставляю.
Как правильно обновить DOM в таком случае? Можно ли как-то запустить обновление DOM'a фоном? Допустимо, чтобы цифры в категориях обновлялись с задержкой. Как вы решаете такие задачи?
  • Вопрос задан
  • 177 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Судя по ответу сервера подозреваю, что вы пробегаете по этому массиву и для каждого product_id ищете элемент в DOM.
Может оказаться гораздо быстрее, если сервер отдаст ответ как один объект
{'product_id' : 'count', 'product_id' : 'count}
В таком случае можно сразу найти в DOM коллекцию нужных элементов и по их product_id брать count из объекта.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
trushka
@trushka
И ещё надо попытаться оптимизировать вёрстку - максимально избавиться от лишних обёрток, ато, бывает, понаверстают "матрёшек", а потом при любом изменении DOM браузер подвисает..
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы