Как минимум ассортимент скачивается всегда при загрузки. Если есть кэширование то клиент не ощущает первой загрузке. Дальше на клиенте массив в тысячу строк делается меньше секунды. А query регулярно делает запрос, при изменении query делается новый. Это только запрос, а фильтрация ещё должна пройти в базе для возврата результата. Но делай как хочешь