Size: a a a

2020 May 27

VS

Vladimir Sekisov in pro.elixir
просто включите дебаг liveview и все увидите
источник

AR

Andrew Rudenko in pro.elixir
Źmićer Rubinštejn
А что он использует если не vdom?
анализирует leex темплейт, смотрит где там были использованы assignments, проставляет этим нодам айдишники. при изменении assignments смотрит какие поменялись, вычисляет какие ноды из шаблона и как должны были измениться, отправляет команды в клиент с айдишниками нод и контентом
источник

AR

Andrew Rudenko in pro.elixir
клиент в свою очередь менеджит линки бежду логическими айдишниками нод и дом нодами, и используеь morphdom для их апдейта
источник

AR

Andrew Rudenko in pro.elixir
как-то так
источник

AR

Andrew Rudenko in pro.elixir
Vladimir Sekisov
а что тогда? Розовых пони?
нет не розовых, помимо vdom-а есть еще множество способов декларативного описания интерфейсов
источник

VS

Vladimir Sekisov in pro.elixir
при чем тут слово "декларативный"?
Суть не в названии, а в модели.
источник

AR

Andrew Rudenko in pro.elixir
Vladimir Sekisov
при чем тут слово "декларативный"?
Суть не в названии, а в модели.
потому что vdom был придуман именно в контексте декларативного описания UI. но да, не при чем, vdom не используется в liveview
источник

AR

Andrew Rudenko in pro.elixir
ну или я бы был очень рад увидеть ссылку на код где используется
источник

VS

Vladimir Sekisov in pro.elixir
вам уже сказали -включите debug и посмотрите,
ну если хочется разобраться конечно
источник

AB

Alex Bubnov in pro.elixir
Andrew Rudenko
потому что vdom был придуман именно в контексте декларативного описания UI. но да, не при чем, vdom не используется в liveview
Ну не совсем так. Vdom это способ превратить deferred rendering браузера в immediate, который сильно проще
источник

AR

Andrew Rudenko in pro.elixir
Vladimir Sekisov
вам уже сказали -включите debug и посмотрите,
ну если хочется разобраться конечно
дебаг в браузере? в браузере я увижу дифы в логические ноды UI. эти дифы можно вычислить как с помощью vdom, так и с помощью других моделей
источник

AR

Andrew Rudenko in pro.elixir
в лайввью используются другие
источник

AR

Andrew Rudenko in pro.elixir
Alex Bubnov
Ну не совсем так. Vdom это способ превратить deferred rendering браузера в immediate, который сильно проще
Ну на сколько я знаю терминологию эти термины из уровня ниже и vdom на это никак не влияет. В конечном итоге обновляется все равно дом, а когда и как его отрендерить в дисплей решает браузер
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Видимо это всетки не vdom, потому что он подразумевает хранение всего.
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Но принципиальной разницы в подходах я не вижу
источник

ŹR

Źmićer Rubinštejn in pro.elixir
по всей видимости имеет значение только размер пэйлоада и скорость обработки на серваке. что там проискходит на клиенте как то пофик
источник

AR

Andrew Rudenko in pro.elixir
Źmićer Rubinštejn
Но принципиальной разницы в подходах я не вижу
Ну как бэ сложно придумать более принципиально разные подходы )
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Andrew Rudenko
Ну как бэ сложно придумать более принципиально разные подходы )
легко же. например пересылать куски html целиком. или делить стейт на чисто клиентский и шареный и пересылать только шареный
источник

AR

Andrew Rudenko in pro.elixir
Źmićer Rubinštejn
по всей видимости имеет значение только размер пэйлоада и скорость обработки на серваке. что там проискходит на клиенте как то пофик
Ну да. У меня вот при каждом апдейте тупо все перерендеривается на сервере. Крутота лайвью феникса, что они запилили этот алгоритм дифа на статическом анализе шаблонов
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Есть еще вариант, за которым как я надеюсь будущее - TEA где модель лежит на серваке, все actions летят туда-же по вебсокету, а реактивно обновляется потом все само по себе
источник