Это серверная реализация. В теории так можно накостылить типа функции, что будет автоматом подгружать всё, изначально сырые данные загружая перед первой загрузкой, но это дичь
Думаю справиться с циклом и его блокировкой ты сможешь, для выгрузки товара, а потом, при нажатии, продолжить выгрузку. Тип (Получаешь данные из DB и грузишь в arr) for(i of arr) { создать блок товара }