@makar04

Как оптимизировать страницу с большим количеством записей получаемых по API или в результате парсинга?

Доброго времени суток! Есть закрытая система, которая подгружает данные поставщиков, записывает их в js объект и выводит их сразу на html страницу без записи в базу данных, так как требуется самая актуальная информация об этих данных, в любой момент поставщик может изменить стоимость, пометить товар на возврат. JS объект используется для поиска товара на странице.
У одних поставщиков данные загружаются по api, у других парсятся сайты, третьи выгружают инфу к нам в базу.
После получения данных для каждого поставщика создаётся кэш и удаляется только в тот момент когда с каким либо товаром была совершена операция, а при открытии карточки товара данные берутся самые актуальные с сайта поставщика. Повторная загрузка страницы занимает намного меньше времени, т. к. данные кэшированы и если и обновляются то максимум для 1 - 2 поставщиков, а вот первоначальная генерация страницы на данный момент для 3х поставщиков занимает около 2-4 секунд при том что загружается около 200 товаров. В идеале, таких поставщиков будет штук 10-15 и у каждого по 50 - 150 товаров, тоесть в среднем на страницу будет загружаться около 1000 - 1500 товаров для каждого пользователя.
На текущий момент, системой одновременно пользуются около 6 пользователей, но их количество будет расти вот и решил заранее подготовится к более высокой нагрузке.
Запись в базу данных не использую, так как например товар может быть отправлен к нам, а после того как мы его принимаем он сразу же отменяется и помечается на возврат поставщику и не попадает на страницу с товаром который готов к продаже или может быть в любой момент затребован поставщиком к вовзрату, также в любой момент может быть изменена стоимость или описание товара.
Подскажите, может кто сталкивался с таким способом работы или есть какие либо идеи для оптимизации системы?
  • Вопрос задан
  • 86 просмотров
Решения вопроса 1
xISRAPILx
@xISRAPILx
Кратко не получится
Вот несколько вариантов:
  • 1000-1500 товаров на страницу - это много, достаточно 30-50 максимум.
  • Загружать данные ajax'ом асинхронно по мере прогрузки страницы.
  • Грузить все данные в свою базу и сделать отдельный скрипт, который будет мониторить изменения и обновлять данные.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы