Не так давно 12.12.2018 был анонсирован выход новой библиотеки для фанатов phoenix framework под названием Phoenix LiveView. Я бы хотел поделиться с вами впечатлениями от ее использования и phoenix в целом, а в следующей статье попробовать написать простую браузерную игру. Часть статьи с личным мнением не является исключительно правдивой, я попробую объяснить преимущества веб-разработки на примере phoenix против php
Теоретическая часть
Phoenix — это фрэймворк на функциональном языке elixir. Прошу не путать с Phalcon для php.
Phoenix LiveView — это потрясающая новая библиотека, которая позволяет создавать динамические веб-страницы без написания javascript кода посредством двунаправленной связи по вебсокетам и server side rendering. Как мы прекрасно знаем, вебсокеты у phoenix достаточно хорошо реализованы, поэтому производительности хватит для большинства идей, которые вы планируете реализовать.
Существует несколько вариантов использования LiveView:
Creative Live Cam Sync 1080p v2 Webcam
- Проверка ввода данных в формы (валидация), нажатие кнопок, скрытие и отображение блоков, автозаполнения.
- События от сервера, такие как уведомления, информационные панели, счетчики.
- Навигация по страницам и пагинация. Они могут быть построены с помощью LiveView, но в настоящее время вы потеряете функционал перехода «назад / вперед». Поддержка `pushState` включена в план.
- Отображение постоянно растущих данных — чаты, онлайн логи и т.п. можно создавать с помощью LiveView, но в настоящее время вы должны хранить все данные в состоянии приложения на сервере. Поддержка частичного обновления данных состояния находится в разработке.
- Работа с задержками при изменении состояния. LiveView хранит состояние приложения на стороне сервера и это гарантирует правильную работу интерфейса при серьезных задержках.
- Полный набор функций для моделирования этих ситуаций появится в будущих версиях.
- Анимации. К примеру отображение меню по клику можно реализовать через LiveView, но плавное появление лучше отдать в css или js.
- Optimistic UI. Приложение рассчитано на постоянную работу с стейтом сервера и этого стейта нет на клиенте. Весь html код на любое событие подготавливается на сервере с новым состоянием и летит по вебсокетам к клиенту, все видимые изменения происходят посредством подмены html кода.
Как работает LiveView?
xenia.kuritsina 4 Мая 2012 — 18:16:39 Здорово всё объяснили!)
alexsoft61 20 Марта 2012 — 15:25:42 Не плохо бы упомянуть и возможность «предварительного подъема зеркала» , так же дополнительно обеспечивающего защиту от микросмазывания (за счет подъема/опускания зеркала), особенно на небольших выдержках. Начиная с выдержек, измеряемых секундами, не говоря уже о десятках секунд, необходимость в предварительном подъеме зеркала отпадает т.к. его влиянием можно пренебречь.
Программа КХЛ ТВ «На связи». Live 31.05.23
Евгений Карташов 6 Мая 2012 — 12:07:34 Зеркало в режиме Live View и так поднято. Зачем поднимать его еще раз?
Источник: photo-monster.ru