Как оптимизировать страницу с большим количеством записей получаемых по API или в результате парсинга?
Доброго времени суток! Есть закрытая система, которая подгружает данные поставщиков, записывает их в js объект и выводит их сразу на html страницу без записи в базу данных, так как требуется самая актуальная информация об этих данных, в любой момент поставщик может изменить стоимость, пометить товар на возврат. JS объект используется для поиска товара на странице.
У одних поставщиков данные загружаются по api, у других парсятся сайты, третьи выгружают инфу к нам в базу.
После получения данных для каждого поставщика создаётся кэш и удаляется только в тот момент когда с каким либо товаром была совершена операция, а при открытии карточки товара данные берутся самые актуальные с сайта поставщика. Повторная загрузка страницы занимает намного меньше времени, т. к. данные кэшированы и если и обновляются то максимум для 1 - 2 поставщиков, а вот первоначальная генерация страницы на данный момент для 3х поставщиков занимает около 2-4 секунд при том что загружается около 200 товаров. В идеале, таких поставщиков будет штук 10-15 и у каждого по 50 - 150 товаров, тоесть в среднем на страницу будет загружаться около 1000 - 1500 товаров для каждого пользователя.
На текущий момент, системой одновременно пользуются около 6 пользователей, но их количество будет расти вот и решил заранее подготовится к более высокой нагрузке.
Запись в базу данных не использую, так как например товар может быть отправлен к нам, а после того как мы его принимаем он сразу же отменяется и помечается на возврат поставщику и не попадает на страницу с товаром который готов к продаже или может быть в любой момент затребован поставщиком к вовзрату, также в любой момент может быть изменена стоимость или описание товара.
Подскажите, может кто сталкивался с таким способом работы или есть какие либо идеи для оптимизации системы?
sim3x, так в том то и дело, что все 1500 косаря они могут осилить, а статистика есть только по 5 из 10 компаний, остальные 5 могут в любой момент внести изменения не кого из партнёров при этом не уведомляя об изменениях
makar04,
Нет не могут
Человек может осилить 4+-2 единицы информации
Изменение информации на стороне поставщика занимаются люди
Люди спят, курят и вообще мало работают
Потому расчитывать на частое изменение в течении часа - не разумное предположение (пока у вас нет конкретной статистики по вашим конкретным поставщикам)
sim3x, ну 1 из поставщиков довольно крупный гипермаркет, поэтому договорится с ними о чем либо не получится, а вносят изменения они как раз довольно часто да и сотрудников у них на это хватает, вот как раз этот крупный гипермаркет и сделал апи для того что бы мы всегда имели свежую инфу на случай изменения, но проблема в том, что хоть он и крупный гипермаркет для 1го пользователя он не даёт большой объем товара, поэтому у 1го пользователя и может быть 10 поставщиков и не у всех есть апи. Ну в целом я понял, искать вариант как не грузить 1,5к товаров.
alex-1917, как я писал в описании, данные кешируются, поэтому запросы к АПИ конкретного поставщика отправляются редко, а если брать в целом систему, то каждый раз когда пользователь грузит какрточку товара, идёт запрос к поставщику. Т. е. для одного поставщика в день может быть от 1 до 50 запросов, а для другого 1 - 5 запросов.