Как измененить содержимое сайта взависимости от ответа бэкенда?
В общем пришло ТЗ на сайт и логи от него, которые летят в телеграмм чат с определенной информацией откуда пришел запрос. В телеграмм чат присылает это бот с кнопками, "Redirect to...", "Redirect to google", и и на основе какую кнопку нажал администратор. Изменять/Редирект содержимого сайта.
Вы хотите, чтобы содержимое сайта менялось прямо "вживую" в браузере у посетителя без перезагрузки страницы или просто, чтобы после перезагрузки изменялась информация?
setuper, А пока администратор проснется и нажмёт на кнопку, посетителю что делать?
Обычный вариант:
Заводите, как обычно, сессии с куками. В куку пишите уникальный id, который присылайте админу в бот. Админ будет тыкать кнопку, а вы в хранилище, где будут храниться ваши сессии, добавляйте информацию, куда этому id идти.
И если увидите, что снова пришла кука с этим id, то туда пользователя и отправляйте.
Лайв-обновление.
Без JavaScript обойтись сложно, но можно использовать HTMX. И использовать так называемые SSE (Server Sent Events). Это вебсокеты для бедных, которые позволяют очень просто слать сообщения на фронтенд. Как их использовать, придётся гуглить.
Мой совет - HTMX и плагин для него с SSE https://htmx.org/extensions/server-sent-events/
Виктор Кожухарь, я не против использовать javascript(думаю мне ИИ поможет). Пока администратор не нажал будет висеть бесконечная загрузка(loader), я думаю можно с помощью AJAX запросы, но пока еще не понял как. Иногда мне придется даже брать информацию с переменной, думаю мне нужно будет использовать templates. Получается что лучше подойдет?
setuper, Бесконечную загрузку не рекомендую. Http соединения не бесплатные, и если вдруг на ваш сайт повалит народ, то сервер ляжет.
Бесконечную загрузку можно нарисовать при помощи гифки или css-анимаций, а когда с бэкенда в браузер придёт SSE сообщение о том, что админ выбрал вариант, JavaScript перезагрузит страницу, и вуаля!
setuper, ну вот вам приходит xhr response. Вы его анализируете, можете сделать JSON.parse и далее через if/else проверяете нужные вам параметры и делаете что-то там