Главная · Каталог задач · Интерактивная страница Phoenix LiveView

Готовый сценарий

Интерактивная страница Phoenix LiveView

LiveView держит состояние интерфейса на сервере, поэтому в socket легко случайно положить большой список для каждого подключённого пользователя. Модель оставит минимальные assigns, использует stream для коллекции и разделит первый статический mount с подключённым состоянием. События будут проверять права заново, а не доверять id из браузера.

Попробуйте прямо здесь Отвечает Gemma 3 12B — модель подобрал сервис

Открыть в полном чате

  • Доступ без VPN
  • Русский интерфейс
  • Оплата рублями по факту

Зачем

Зачем это нужно

01

Хранит в socket только состояние интерфейса, а не копию всей выборки

02

Использует stream для изменений большого списка без полной пересылки

03

Проверяет право на запись внутри события независимо от скрытых полей формы

Вопросы

Частые вопросы

Почему mount вызывается дважды?

Сначала сервер строит статический HTML, затем браузер устанавливает живое соединение и запускает подключённую фазу. Это нормальный жизненный цикл. Модель поместит дорогую подписку только в connected-ветку, а данные для первого отображения загрузит так, чтобы не выполнять лишнюю работу дважды.

Что не стоит хранить в assigns?

Большие неизменяемые коллекции, тяжёлые структуры и данные, которые легко получить по id. Каждый socket живёт отдельно и умножает память на число пользователей. Модель сократит состояние до фильтра, выбранного объекта и видимой части списка, сохраняя остальное в базе или кэше.

Можно ли доверять параметрам события?

Нет, клиент способен отправить событие вручную и подставить любой id. Сервер заново проверяет пользователя, принадлежность ресурса и допустимость перехода статуса. Модель не будет считать скрытое поле или отсутствие кнопки защитой: интерфейс управляет удобством, права остаются в обработчике.

Рядом

Дальше — весь каталог задач: поиск по названию, темы и фильтры.

Нужно больше

Весь Енотик — в одном окне

Полный чат: история, вложения, базы знаний, картинки и видео. Один баланс на все модели, оплата рублями по факту.