Рекурсивный алгоритм. На какой стороне его лучше реализовать?
Задача:
Выбрать данные рекурсивно с внешнего ресурса и представить их в более удобно для работы виде.
Вопрос:
Как поступить? Сделать это на строен сервера при этом кол-во запросов к ресурсу может составлять до 4000 (соответственно долго по времени) или реализовать это на стороне клиента, с использованием js библиотек?
придумал!!! сделаю так:
На стороне клиента перед запуском будет проверятся наличие данных в кеше если их нет, но поиск выполняется на стороне клиента, по завершению и сборке всех данных они отправляются на сервер в кеш. Данные в кеше будет храниться в течении час, это обеспечит и актуальность данных и быстродействие при большом колве запросов в течении часа.
Нельзя доверять данным полученным с клиента. Вы закэшируете какую-нибудь чушь или намеренно измененный контент и будете отдавать его остальным клиентам. Это небезопасно.
Я за реализацию на сервере. Только меня «рекурсивный алгоритм» смущает. Лучше через очередь.
— frontend (общается с клиентом, при необходимости информирует о ходе работы через SSE/WS)
— queue (для заданий, обмена целями)
— backend (распараллелить работу)
— storage (хранение результатов + отчёт)
ну и кеширование, конечно.
Если данных не много, то проще и удобней делать все на клиенте (меню строить в виде дерева, небольшие данные показывать) Но если данные для рекурсии большие, то действительно проще будет один раз поработать над ними и закешировать результат.