The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Сравнение методов исключения разработки на JavaScript для веб технологий
Преамбула

К статье о публикации фрэймворка Pusa авторы получили полезные для
дальнейшей работы над проектом отклики. Наиболее важным нам показалась беседа с
создателем проекта Korolev, реализующего аналогичную парадигму но
принципиально иными методами.

Так как, у нас была возможность не только познакомится с исходным кодом
Korolev, но и пообщаться с его создателем, считаем возможным показать
принципиальное отличие концепции Pusa, именно на примере Korolev.

Задача

Оба проекта реализуют разработку web-приложений без необходимости написания
клиентского кода JavaScript  конечным разработчиком.

Решение Korolev

Реализация scala. При открытии страница браузер клиента скачивает базовый
JavaScript-код приложения. Тот открывает WebSocket-соединение с сервером
Korolev. На стороне сервера формируется DOM-структура. Клиентские события
направляются через websocket на сервер. Получив очередное событие Korolev
выполняет необходимую бизнес логику, вносит изменения в DOM на стороне сервера,
далее выполняется построение дифференциального обновления которое направляется
на клиент. Благодаря оптимизированному механизму построения дифов,
эффективность обработки DOM на стороне Korolev высока. Клиентское приложение
получив изменения, отражает их в DOM браузера. Пользователь получает
необходимый контент.


Решение Pusa

Реализация PHP. При старте приложения браузер скачивает базовый JavaScript-код
приложения Pusa (6кб). Приложение выполняет AJAX запросы на основе событий
браузера. Каждый запрос содержит данные о событийном DOM-элементе и служебную
информацию. Сервер Pusa получая очередное событие, определяет и выполняет
контроллер с бизнес логикой, и возвращает набор инструкций согласно протоколу
Pusa (https://gitlab.com/catlair/pusa/-/blob/main/site/pusa/src/language_ru/man/pusa_protocol.md),
 как результат AJAX запроса. JavaScript-клиент отрабатывает полученные
инструкции, внося изменения в клиентский DOM. Пользователь получает необходимый контент.

Общее в концепциях

  • Клиентские приложения требуют JavaScript как основу работы приложения.
  • От разработчика не требуется работа над клиентским кодом JavaScript ни в каком виде.
  • Бизнес логика и работа с DOM выполняется на стороне сервера на имеющихся средствах разработки.
  • Клиент получает необходимый контент.
  • Код приложения находится в безопасном серверном окружении и не присутствует на стороне клиента.
  • Клиентский код JavaScript минималистичен и стабилен.
  • С разработчика снимается проблема сериализации при передаче данных. Особенности Korolev
  • Сервер обладает отражением DOM-объекта для каждого клиентского соединения.
  • Korolev направляет клиенту дифференциальный, хорошо оптимизированный контент.
  • Korolev использует WebSocket, как основной высокопроизводительный метод взаимодействия.
  • В силу архитектуры сервер Korolev имеет возможность инициировать изменение клиентского контента. Особенности Pusa
  • Сервер не требует и не подразумевает хранение состояния клиента, те реализуется чистый REST.
  • Pusa направляет клиенту команды в ответе AJAX через XMLHttpRequest, что значительно снижает требования к браузеру.
  • Pusa относится к клиенту как удаленному конечному автомату без обратной связи.
  • Технология Pusa не имеет возможности инициировать событие со стороны сервера. Инициатором событий является исключительно клиент (таймер возможен). Выводы. Технологии, основывающиеся на необходимости хранения состояния клиента потенциально ограничены ростом клиентских подключений, и как следствие предполагают централизацию аппаратных ресурсов. Возможность инициации событий со стороны сервера является необходимой опцией для внутренних решений. Три перечисленных фактора определяет рынок корпоративных решений, как наиболее привлекательный для технологий, аналогичных Korolev. Качественная оптимизация Korolev явно демонстрируют стремление к минимизации накладных расходов на хранение клиентских состояний, но не устраняет их. Pusa, принципиально следуя парадигме чистого REST, нацелена на рынок открытых решений, со значительным количеством клиентских подключений. Pusa предполагает использование множества независимых инстансов, с минимальными требования, без необходимости их общего взаимодействия. Запросы одного и того же пользователя к Pusa могут обрабатываться различными инстансами в рамках одной сессии, что позволяет использовать решение под значительными нагрузками. Ссылки
  • Korolev
  • Pusa
  • сравнительная схема
  • Анонс публикации Pusa
  •  
    06.12.2021 , Автор: Still Swamp , Источник: https://github.com/fomkin/korolev...
    Раздел:    Корень / Программисту и web-разработчику / Web-технологии / JavaScript

    Обсуждение [ Линейный режим | Показать все | RSS ]
  • 1.1, Аноним (1), 10:21, 07/12/2021 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • +2 +/
    Решения для создания невообразимо отвратительных проприетарных шпионских сайтов.
     
     
  • 2.37, Аноним (-), 06:51, 23/12/2021 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Судя по описанию - сделано ящерами с планеты ниибиру, видимо на js у них аллергия.
     
  • 2.39, Аноним (39), 17:31, 27/12/2021 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    А в чем невообразимость? Js при данных подходах все равно нужен, который ещё нужно вытянуть с соответствующих доменов. Достаточно забанить клиентскую часть и все эти свистоперделки превращаются в тыкву.
     

  • 1.2, stillswamp (ok), 11:05, 07/12/2021 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • +2 +/
    Отвратительность и шпионство создают не решения а люди. Любой сайт можно сделать отвратительным и шпионским вне зависимости от технологии.
     
  • 1.3, Linuxoid (?), 13:13, 07/12/2021 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • +/
    Хорошая статья. Если обратиться к исследуемым библиотекам, то нужно быть либо скалистом, либо пиэйчпистом. Маловероятно, чтобы один человек, достаточно хорошо разбирался бы в обоих языках одновременно. По поводу исключения js-из разработки, думаю это не правильный пусть. Нужно наоборот, вовлекаться в js-технологии. Зачем придумывать велосипеды? Есть замечательный пример с языком Dart. Есть и другие примеры. Нужно принять, что js-это уже экосистема, которую не получиться игнорировать.
     
     
  • 2.4, stillswamp (ok), 14:02, 07/12/2021 [^] [^^] [^^^] [ответить]      [к модератору]
  • +1 +/
    Суть указанных подходов - сокращение средств разработки.

    Так как избавиться от девелопинга на бэке невозможно, следует логичное стремление сократить девелопинг на фронте. При этом не просто переместить на бэк JS, а принципиально исключить его.

    На чем написан бэкэнд - уже не принципиально.

     
     
  • 3.12, Аноним (12), 10:30, 11/12/2021 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    > сократить девелопинг на фронте

    Нет, теперь бэку, помимо своей основной работы, придется выполнять также и работу фронтендеров, столь заботливо переложенную на них фреймворком Pusa.

        DOMBody()->DOMChilds('GUID', self::ID)->DOMValue(clGUID());

    Здесь нет ничего, что бы относилось к "бизнес-логике", здесь исключительно гуйная логика, которая выполняется не там, где должна бы.

     
     
  • 4.15, stillswamp (ok), 12:39, 11/12/2021 [^] [^^] [^^^] [ответить]      [к модератору]
  • –1 +/
    >> сократить девелопинг на фронте
    > Нет, теперь бэку, помимо своей основной работы, придется выполнять также и работу
    > фронтендеров, столь заботливо переложенную на них фреймворком Pusa.
    >     DOMBody()->DOMChilds('GUID', self::ID)->DOMValue(clGUID());
    > Здесь нет ничего, что бы относилось к "бизнес-логике", здесь исключительно гуйная логика,
    > которая выполняется не там, где должна бы.

    Поясню принцип: если работу можно выполнить одному специалисту одним инструментом без потери качества и времени, это лучше сделать именно так, так как исключает расходы на координацию.

    Pusa не про то что "ай бэку нужно делать фронт". Pusa - техническое средство решающее финансовые вопросы унификацией инструментария и специализации.

     
     
  • 5.16, Аноним (12), 19:01, 11/12/2021 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    При этом предполагается, что у проекта будет только веб-клиент причем один, а н... большой текст свёрнут, показать
     
     
  • 6.17, stillswamp (ok), 20:16, 11/12/2021 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    1. Контекст отображения не имеет принципиально никакого значения с точки зрения фэймворка. Прошу пояснить каким образом конечное устройство влияет на бэк и почему его придется убрать?

    2. Повторю ранее заданный в этой же ветке вопрос. Представьте case который не реализуем в Pusa на текущий момент. Он будет либо сделан либо явно включен в ограничения.

    3. Разработчк на Pusa НЕ РАБОТАЕТ с DOM. Он оперирует крайне ограниченным набором инструкций которые могут формировать DOM, при этом об его фактическом устройстве знать не обязательно. DOM* функционал Pusa - не более чем набор конечных инструкций. Если вы занимались разработкой под opengl, то подход для вас будет знаком. Разраб работает с инструкциями а не с контекстом. Это принципиально важно.

    4. Один разработчик - это крайний пример плоской схемы, когда у вас в наличии вместо нескольких направлений с необходимостью координации линейные бэки. Не погибнет эта схема с расширением бизнеса. Pusa создана масштабированием и под оное.

    5. XHR выбран в качестве САМОГО примитивного варианта для демонстрации схемы и доказательства ее работоспособности. Так же была выполнена реализация на iframe, но была отклонена что бы не пугать людей. Мы планируем представить реализации как минимум на ws для golang, java, node.js. При этом мы по прежнему будем настаивать на исключении хранения состояния клиента на бэке.

     
     
  • 7.18, Аноним (12), 21:06, 11/12/2021 [^] [^^] [^^^] [ответить]      [к модератору]
  • +2 +/
    DOMChilds GUID , self ID -- этот код может не сработать Потому что у альтерн... большой текст свёрнут, показать
     
     
  • 8.19, stillswamp (ok), 22:53, 11/12/2021 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    1 Что такое альтернативный веб клиент Если это один проект, то следует задать ... большой текст свёрнут, показать
     
     
  • 9.22, Аноним (12), 14:14, 12/12/2021 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Все, что угодно Еще одна веб-страница, созданная с нуля, с другой версткой, но ... большой текст свёрнут, показать
     
     
  • 10.23, stillswamp (ok), 21:11, 12/12/2021 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Вы выставляете правильное требование и именно оно породило MVC концепцию, когда ... текст свёрнут, показать
     
     
  • 11.26, Аноним (12), 22:10, 12/12/2021 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Не увидел ответа, как к существующему сайту на фреймворке прикрутить нативное мо... большой текст свёрнут, показать
     
     
  • 12.28, stillswamp (ok), 10:00, 13/12/2021 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Мы перешли от обсуждения реализации Pusa к архитектурным вопросам Ответ по суще... текст свёрнут, показать
     
  • 8.31, stillswamp (ok), 13:50, 13/12/2021 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    Добавлен пример Copy в буффер - https pusa catlair net section Examples - htt... текст свёрнут, показать
     
  • 5.49, Бывалый смузихлёб (?), 07:01, 14/03/2022 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +1 +/
    Если речь не о самом примитивном конструкторе страниц из готовых блоков, то задача становится совсем непростой.
    И тот «один специалист-бэкендер-скалист( такие вообще в природе существуют в ощутимых количествах? )» вмиг превращается в фуллстека, притом не самого плохого с необходимостью понимания очень многих штук.

    Нюанс в том, что можно хоть треснуть, но стили на клиенте в итоге все равно будут в CSS ( лучше в файлах, инлайн плохо кешируется и обработка его жрет много ресурсов )
    Равно как и основная «динамическая» работа будет на JS. И «не работать» с ним удастся только при применении готовых блоков( в которых уже кто-то поработал ), в иных случаях - по многим причинам придётся ещё и жс как-то заталкивать чтобы он не сломал систему.

    И ещё один, но фундаментальный нюанс в том, что сетевые запросы требуют времени и немалого.
    В этом смысле нет большой разницы, весит ли скрипт 6кб или 60 - скорее всего, само время сетевых запросов будет больше длительности скачивания.
    В данном же случае пользователю, чтоб увидеть первую норм страницу, потребуется ожидание нескольких запросов и отработки скриптов, сама реакция на изменения будет с лагом.

    Особенно это критично в случае разных анимаций и проч, завязанных на действия пользователя( где-то что-то начал вводить, где-то провёл мышкой или пальцем по тачскрину - это ж сколько запросов полетит на сервер, итд )

    Хотя сама идея, в общем и целом, весьма интересна. Есть подозрение что для внутренних корпоративных систем будет очень даже годно

     

  • 1.5, Аноним (5), 10:58, 08/12/2021 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • +/
    Подход Korolev мне больше нравится. Было бы офигенно, если бы кто-то сделал что-то подобное, но независимое от языка бэкенда.
     
     
  • 2.47, DD (??), 23:25, 04/02/2022 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Here is a solution to you - JavaScript in browse!
     

  • 1.6, Glushko (?), 11:51, 09/12/2021 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • +/
    бредовый подход. но история повторяется: раньше гоняли ajax-ом сгенеренные куски хтмл, теперь пошли дальше: оверинжинирят то же самое через вебсокет и дом-дифф.

    а потом эти же люди ноют в комментах к очередному js-фреймворку, якобы вебмакаки зря утилизируют ресурсы компьютеров.
    в этих поделках из статьи всё, что можно было применить не по назначению - применено не по назначению.

    вобщем, не только в германии сумрачные гении сидят. у нас тоже имеются доктора франкенштейны.. особенно в южных губерниях

     
     
  • 2.7, stillswamp (ok), 23:23, 09/12/2021 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    1. Прошу конкретику. Что применено не по назначению? Готовы исправить.

    2. Прошу осмотреть вот это изделие без строчки JS кроме самого фреймворка.
    https://engram.catlair.net/

    3. Прошу изложить вашу концепцию решения аналогичного изделия с применением по назначению JS с сопоставлением результатов.

     
     
  • 3.8, Glushko (?), 11:27, 10/12/2021 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    1 не по назначению - это про концепцию совершенно безумная идея перенести ре... большой текст свёрнут, показать
     
     
  • 4.9, stillswamp (ok), 19:22, 10/12/2021 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    ... skip
     
  • 4.10, stillswamp (ok), 19:25, 10/12/2021 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Благодарю за подробный ответ.

    Перенос событий из браузера на сервер практичен. Утилизацию следует обсуждать на цифрах. Таковых от вас ожидать мы не в праве, а потому обсуждение лишне. Pusa сейчас для эксперимента трудится на сервере стоимостью 2евро в месяц. Завалить не трудно, но едва ли она покажет себя хуже предложенных вами технологий (скорее всего лучше) :)

    В приведенном примере каждый клик отправляется на сервер, так как логика сборки таблицы размещена на сервере. Ее нет в браузере. Касательно скорости соединения, выставив ограничение скорости в первую очередь пострадает загрузка озвучки в mp3. Реакция на события будет минимальной проблемой. Так же учтите факт, что на медленном соединении вы получите для JS решения задержки загрузки фрэймворка и прочей графики.

    Если у вас будет желание и возможность, прошу представить случай где Pusa не будет комфортно. Сразу оговорюсь: один из участников обсуждения желал от нас получить сразу некое готовое решение под свои задачи. Естественно мы не стали выполнять чужую работу. Но мы крайне заинтересованы, если вы назовете объективную задачу с которой Pusa не справится. Canvas и массированные mousemove (etc) не являются таковой, это оговорено в ограничениях Pusa.

    *** Если вы представите разумный case - мы постараемся сделать демонстрацию решения. Критерий разумности - 1 час исполнения.

    И самое главное... Pusa - это радикальное упрощение разработки. Поверьте - вопросы нагрузки на сервера - мелкая мелочь по сравнению с предлагаемыми возможностями.

     
     
  • 5.13, Аноним (12), 10:32, 11/12/2021 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    Да, один раз При самом первом заходе на сайт Дальше браузер все закэширует Пр... большой текст свёрнут, показать
     
     
  • 6.14, stillswamp (ok), 12:32, 11/12/2021 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    >> на медленном соединении вы получите для JS решения задержки загрузки фрэймворка и прочей графики
    > Да, один раз. При самом первом заходе на сайт. Дальше браузер все
    > закэширует.

    Я давно и много смотрю на логи пользовательских запросов. Пользователям нет дела до нюансов реализации и нет дела до времени жизни страницы. Запросы на обновление всей страницы прилетают многократно чаще ожидаемого разработчиком. И... быстродействие продуктового сайта оценивается потребителем по загрузке первой страницы.

    >> Если вы представите разумный case - мы постараемся сделать демонстрацию решения. Критерий разумности - 1 час исполнения.
    > Предлагаю написать todo list, потому что его я в демках не нашел.
    > При сравнении гуйных фреймворков todo list является хелловорлдом, позволяющим оценить
    > базовый концепт фреймворка. При этом хочется увидеть демонстрацию виртуализированного
    > скролла, потому что в реальном энтерпрайзе данных будет много. А поскольку
    > постулируется, что задача "не просто переместить на бэк JS, а принципиально
    > исключить его", то виртуализированный скролл следует сделать исключительно средствами
    > Pusa, без дополнительных клиентских библиотек.

    Case Todo обсуждался нами для демки, но был отклонена в тч мной, так как кода чуть более чем надо для представления элементарных основ. Демка todolist была разбита на форму авторизации (отправка POST), подгружаемый список элементов GUID, и интерактивное добавление элементов графики: https://dev.pusa.catlair.net/?section=Examples. Тем не менее, с учетом нового внешнего мения о необходимости todo list в демонстрации, мы еще раз обсудим это и возможно выложим.

    Все же от вас ожидался примитивный но показательный тест, убивающий концепцию Pusa.

     
  • 6.41, stillswamp (ok), 19:36, 29/12/2021 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Ваше мнение принято.

    Выложили helloworld (todo) на Pusa.

    Ссылка: https://dev.todo.catlair.net/
    Контейнер c готовым проектом: https://hub.docker.com/r/catlairnet/pusa_todo_demo
    Ну и исходники: https://gitlab.com/catlair/pusa/-/tree/main/site/todo

    Жаль что аноним... а то бы посчитали в списке благодарностией.

     
  • 5.21, Sw00p aka Jerom (?), 12:13, 12/12/2021 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    >Поверьте - вопросы нагрузки на сервера - мелкая мелочь по сравнению с предлагаемыми возможностями.

    мелочь говорите? :)

     
     
  • 6.24, stillswamp (ok), 21:20, 12/12/2021 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    >>Поверьте - вопросы нагрузки на сервера - мелкая мелочь по сравнению с предлагаемыми возможностями.
    > мелочь говорите? :)

    Оцените по вашему опыту сумму затрат для публичного ресурса с постоянной доработкой функционала для 1k 10k 100k уникальных визитов ежемесячно по статьям:
    - стоимость команды разрабов включая налоги а так же затраты на их координацию;
    - стоимость ресурсов для работы проекта на прод;

    Данные если пожелаете, можно сложить сюда. :)

     
     
  • 7.27, Sw00p aka Jerom (?), 00:13, 13/12/2021 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    >Оцените по вашему опыту сумму затрат

    зачем мне оценивать сумму затрат, меня интересует вопрос нагрузки, какую нагрузку способно держать ваше решение для минимум одной ноды (одной запущенной версии приложения).


     
     
  • 8.29, stillswamp (ok), 10:08, 13/12/2021 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    1 Потому что я, отвечая на комент мелочь говорите , сопоставлял стоимость раз... текст свёрнут, показать
     
     
  • 9.33, Anonimus (??), 22:48, 16/12/2021 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    И не только php, а также nodejs, go, rust и большая туча других языков RPS и la... текст свёрнут, показать
     

  • 1.20, морошка ягодка такая (?), 11:50, 12/12/2021 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • +1 +/
    а нельзя просто дотнет + wasm взять?
     
     
  • 2.25, stillswamp (ok), 21:23, 12/12/2021 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    > а нельзя просто дотнет + wasm взять?

    С удовольствием обсужу в телеге если у вас есть опыт реализации.

     
  • 2.30, username (??), 13:12, 13/12/2021 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Просто взять http://www.rebol.com/docs/cgi2.html и http://www.rebol.net/plugin/tests/plugin-guide.html :)
     
     
  • 3.32, stillswamp (ok), 13:52, 13/12/2021 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    > Просто взять http://www.rebol.com/docs/cgi2.html и http://www.rebol.net/plugin/tests/plugin-guide.html
    > :)

    Читать умею. Поиском пользоваться тоже. Интересен реальный опыт использования.

    А еще смущает вот это:

    2. System requirements
    In order to use REBOL/Plugin, end-users viewing your web site must have:

    Windows 95 or higher. Linux, and Macintosh are currently not supported.
    Internet Explorer 4.0 or higher. Netscape and other browsers are currently not supported.

     

  • 1.34, mos87 (ok), 10:14, 17/12/2021 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • +/
    т.е. он всю клиентскую часть хранит на сервере, а на клиент спускает её в готовом виде.

    отлично.

    остался 1 вопрос - нафейхуа нам этот Веб
    вообще, если фактически мы уже честно признаёмся себе, что желательно все его концепции обходить вокруг?

    Может пусть ОС будет ОС, а эту прослойку выкинуть уже

     
     
  • 2.36, gred (ok), 13:26, 19/12/2021 [^] [^^] [^^^] [ответить]      [к модератору]
  • +2 +/
    вот, кстати, да...  
     
  • 2.48, DD (??), 23:26, 04/02/2022 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    +100500
     
  • 2.50, Аноним (50), 11:49, 13/04/2022 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Web нужен для связи - это связь. Всё. Веб - только канал передачи данных.

    "Все его концепции" - это придумки способа использования канала связи. Затеи отдельные от веба. Часто затеи невыгодны конечному клиенту, т.к. приводят к необоснованным тратам. Люди исследуют альтернативные способы.

    Существование альтернативы развивает и укрепляет.

     
     
  • 3.52, mos87 (ok), 18:21, 13/05/2022 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    вэб [единственное что щас примечательно в нём технологически] - это реализация той самой "мечты" о компонетном погромировании. Все эти лежащие на публичных хостах жабаскрипты которые можно заюзать у себя.
    COM done... не right конечно, а просто done. Со всеми ужосами (в первую голову безО) которые и предрекали компонетнке.
    он в такое развился просто потому что был распространён вэб в своём изначальном виде. и поверх него выросло нынешнее чудо.
     

  • 1.35, gred (ok), 13:21, 19/12/2021 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • +/
    я бы сказал, что для каких-то чисто внутрикорпоративных вещей, почти идеально.
    осталось накрутить вокруг этого какой-то действительно удобный RAD.
     
     
  • 2.43, stillswamp (ok), 19:39, 29/12/2021 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    > я бы сказал, что для каких-то чисто внутрикорпоративных вещей, почти идеально.
    > осталось накрутить вокруг этого какой-то действительно удобный RAD.

    Если вы храните состояние DOM на сервере - то действительно это не для выпуска наружу.
    Держать DOM для каждого внешнего пользователя крайне затратно.

    Но Pusa как раз не хранит состояния пользователя на сервере. Чистый REST.

     

  • 1.38, онанимус (?), 12:59, 27/12/2021 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • –1 +/
    шикарная идея, подобные сайты будут быстро работать даже на сименсе м65.

    меня волнует совместимость с кравлерами поисковых движков - гугол сотоварищи нормально их индексирует?
    в яваскрипт все кравлеры умеют, даже богомерзкий wix хорошо индексируется. а вот будет ли кравлер заполнять и отправлять все аяксовые формы - вопрос.

     
     
  • 2.42, stillswamp (ok), 19:37, 29/12/2021 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    > шикарная идея, подобные сайты будут быстро работать даже на сименсе м65.
    > меня волнует совместимость с кравлерами поисковых движков - гугол сотоварищи нормально
    > их индексирует?
    > в яваскрипт все кравлеры умеют, даже богомерзкий wix хорошо индексируется. а вот
    > будет ли кравлер заполнять и отправлять все аяксовые формы - вопрос.

    Да. Pusa работает даже на "тапке". Причем как клиент так и сервер.

     

  • 1.40, 18d75a8d3a9b403d82e5f66cdc5d204a (?), 12:50, 29/12/2021 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • +/
    Что люди только не делают, чтобы Blazor не использовать.
     
  • 1.44, морошка ягодка такая (?), 10:40, 01/01/2022 [ответить] [﹢﹢﹢] [ · · · ]      [к модератору]
  • +/
    Можно же на c# писать, через blazor.
     
  • 1.45, CHH (?), 15:44, 28/01/2022 [ответить] [﹢﹢﹢] [ · · · ]      [к модератору]
  • +/
    ...у нас была возможность не только познакомиТЬся с исходным...
    У меня всё.
     
  • 1.46, ford153focus (ok), 12:15, 04/02/2022 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • +/
    если цель в выбрасывании js из разработки, то что на счёт PIB?

    https://github.com/oraoto/pib

     
     
  • 2.53, rex (??), 14:21, 15/06/2022 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    избавиться от клиентского кода, чтобы абстрагировать писателя бизнес-логики от сети
     

  • 1.51, Аноним (51), 09:08, 27/04/2022 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • +/
    Опять пытаются сэкономить на разработчиках за счёт комфорта пользователя.
    Теперь сетевые лаги будут на каждый клик и ховер?

    И да, разделение труда не просто так придумали.

     


     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру