Сейчас я пишу фронтенд-приложение на angular'е, данные загружаю ajax'ом, серверный рендеринг и вроде бы все хорошо: в исходном коде есть все данные.
Сейчас нужно настраивать кэш.
Получается, что мне приходится кэшировать и api-запросы, и страницы, на которых данные этих запросов будут использоваться. Очевидно, что это ломает всю концепцию api-приложений.
Как с этим быть?
@RidgeA
Получается, при изменении одной публикации, мне необходимо чистить кэш
по всем этим юрлам:
/api/publication?id=10 -- само API / -- главная страница /publications/10 -- сама страница публикации
Кажется, это ломает весь смысл создания api-приложений.
а, ну так это вторая самая сложная проблема программирования.
если нужно кешировать либо надо смириться с тем, что данные будут некоторое время неактуальны, либо придумывать что-то что бы очищать кеш точечно.
а что чистить - уже вопрос реализации. Можно сделать так, что бы чистить надо было только api.
Дмитрий Кольдяев, а чем очистка кеша мешает серверному рендерингу?
Страница каждый раз рендерится (хоть на сервере, хоть на клиенте), но данные, которы используются для нее идут не с бэк-энда, а из кеша...
RidgeA, Нагрузкой: на рендеринг страницы на сервере ведь тоже ресурсы расходуются. Хочется их сэкономить. А серверный рендер -- это далеко не самая быстрая операция.
Дмитрий Кольдяев, ну опять же. Либо кешировать и смириться с тем, что данные какое-то время будут неактуальные, либо не кешировать и смириться с нагрузкой.
Либо, как я уже писал - каким-то образом точечно чистить кеш
RidgeA, Вот меня это и печалит: кэшировать и актуализировать данные нужно полюбому.
Пока у меня в голове есть очень смутная идея о том, чтобы отрендеренные на сервере страницы загонять, например, в поисковый индекс и, при очистке кэша апи, смотреть, на каких страницах это апи использовалось и перегенерировать их.
Просто не хочется руками формировать для каждого объекта список ссылок, которые нужно отправлять на перерендеринг. Думал, может кто уже сталкивался с такой проблемой, и есть готовое решение или хотя бы совет, в какую сторону копать.. Ну или может у ангуляр-юниверсити есть какие-то свои внутренние механизмы кеширования.