The OpenNET Project / Index page

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

Web-фреймворк Pusa, переносящий логику JavaScript-фронтэнда на сторону сервера

12.11.2021 10:17

Опубликован web-фреймворк Pusa с реализацией концепции, переносящей логику фронтэнда, выполняемую в браузере при помощи JavaScript, на сторону бэкенда - управление браузером и DOM элементами, а также бизнеслогика выполняются на бэкенде. Выполняемый на стороне браузера JavaScript код заменяется на универсальную прослойку, вызывающую обработчики, находящиеся на стороне бэкенда. Необходимость разработки с использованием JavaScript для фронтэнда отсутствует. Эталонная реализация Pusa написана на языке PHP и распространяется под лицензией GPLv3. Кроме PHP технология может быть реализована на любому другом языке, включая JavaScript/Node.js, Java, Python, Go и Ruby.

Pusа определяет протокол обмена на базе минималистичного набора команд. При загрузке страницы браузер загружает базовое содержимое DOM и JavaScript-ядро Pusa-Front. Pusa-Front посредством Ajax-запросов направляет события браузера (такие как click, blur, focus и keypress) и параметры запроса (элемент вызвавший событие, его атрибуты, URL и т.п.) в серверный обработчик Pusa-Back. На основании полученных данных Pusa-Back определяет контроллер, выполняет полезную нагрузку и формирует ответный набор команд. Получив ответ запроса Pusa-Front выполняет команды, изменяя содержимое DOM и окружение браузера.

Состояние фронтэнда формируется но не контролируется бэкендом, что делает разработку для Pusa схожей с кодом для видеокарты или Canvas, где результат исполнения не контролируется разработчиком. Для создания интерактивных приложений на базе Canvas и onmousemove предусмотрена возможность загрузки и использования дополнительных скриптов JavaScript на стороне клиента. Из недостатков метода также отмечается перенос части нагрузки с фронтэнда на бэкенд и увеличение частоты обмена данными с сервером.

Среди достоинств выделяются: исключение необходимости участия JavaScript-разработчиков фронтэнда, стабильный и компактный клиентский код (11кб), недоступность основного кода со стороны фронтэнда, отсутствие необходимости в сериализации REST и в средствах типа gRPC, исключение проблем согласования маршрутизации запросов между фронтэндом и бэкендом.

  1. Главная ссылка к новости (https://gitlab.com/catlair/pus...)
  2. OpenNews: Выпуск серверной JavaScript-платформы Node.js 17.0
  3. OpenNews: Новая атака на системы фронтэнд-бэкенд, позволяющая вклиниться в запросы
  4. OpenNews: RangeAmp - серия атак на CDN, манипулирующая HTTP-заголовком Range
  5. OpenNews: Атака на системы фронтэнд-бэкенд, позволяющая вклиниться в сторонние запросы
  6. OpenNews: Выпуск системы управления контентом Joomla 4.0
Автор новости: Still Swamp
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/56140-web
Ключевые слова: web, javascript, php
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (211) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.4, Корец (?), 10:36, 12/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –5 +/
    >Pusa-Front посредством Ajax-запросов направляет события браузера (такие как click, blur, focus и keypress) и параметры запроса (элемент вызвавший событие, его атрибуты, URL и т.п.) в серверный обработчик Pusa-Back.

    Интересно, насколько всё это требовательно к сети? Допустим, на десктопах и на мобильниках в городе проблем не будет, ок, а что на счёт того, когда качество сети плохое?

    >Среди достоинств выделяются

    А среди недостатков? Сказали а, говорите и б!

     
     
  • 2.18, Аноним (18), 10:53, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Говорили "б", выше по тексту.

    > Из недостатков метода также отмечается перенос части нагрузки с фронтэнда на бэкенд и увеличение частоты обмена данными с сервером.

    .

     
  • 2.124, Растоманя (??), 15:16, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • –8 +/
    Там даже безопастный Раст не поддерживается, о чем говорить
     
  • 2.181, Аноним (181), 22:26, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > насколько всё это требовательно к сети?

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

     

  • 1.5, 41 (?), 10:36, 12/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +11 +/
    идея интересная, но современный веб так откормил своих клиентов, что заднюю просто так не включит, хотя для локальных решений очень даже годно
     
     
  • 2.33, Аноним (33), 11:10, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • –7 +/
    Ты наверно не улавливаешь как быстро там все меняется. Если тема годная на неё перейдут все и очень быстро. Но это Пуса звучит как не очень годная.
     
     
  • 3.71, Gemorroj (ok), 11:55, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +10 +/
    перейдут все если гугл скажет. а годность или не годность технологии практически ни на что не влияет.
     
     
  • 4.83, OpenEcho (?), 12:16, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Наврядли гуглу это интересно. Все эти JS frameworks типа REACT были придуманы чтобы ослабить нагрузку на сервера+сеть и вынести на клиентскую часть как можно больше, оставив на бэкендах только контроль и данные.
    Хотя, времена идут, железо для них не проблема и если события с клиента (т.е. его повидение) как-то можно конвертировать в профит, (а это их главная цель - собрать все, какие только можно данные), то может и взлетит, но только для определенной группы, над кем надо пасти неустанно, иначе загнется и сеть и сервера :) но в будующем, вполне возможно и перейдут на Пузо, уж очень лакомый для них кусок данных
     
     
  • 5.90, Аноним (90), 12:42, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    А вот поддерживаю Гугл знатно экономит за счёт пользователей, но при их объёмах... большой текст свёрнут, показать
     
  • 5.179, домен в слонике (?), 21:50, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Ага, а по итогу страницы весят по 100500 мегабайт, ресурсы тупят даже на хорошем канале, а нагрузка на бэкенде не сильно ниже.
     
  • 4.118, bugmenot (??), 14:50, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    То-то же на Ангуляр все перешли (нет)
     
     
  • 5.216, Антон (??), 11:19, 13/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    На ангуляре кстати можно перенести рендеринг на сервер, при желании. Такой проект был. Только не нужен никому, разумеется.
     
     
  • 6.244, stillswamp (ok), 13:16, 14/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Беда в самом Ангуляре - точнее в его наличии и размерах.
     

  • 1.8, Аноним (8), 10:41, 12/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +10 +/
    > Pusa-Front посредством Ajax-запросов направляет события браузера (такие как click, blur, focus и keypress) и параметры запроса (элемент вызвавший событие, его атрибуты, URL и т.п.) в серверный обработчик Pusa-Back.

    Гайд, как самому DDoSнуть свой сервер.

    Как только сайтом начнёт пользоваться достаточно большое количество человек, сервер просто упадёт из-за того что пользователи *кликают на веб страницу*. А если кто-нибудь подрубит автокликер, так вообще классно будет.

     
     
  • 2.10, Аноним (8), 10:44, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Я ещё понял бы если WebSockets, но AJAX -- это же новое TCP подключение и TLS-рукопожатие на *каждый эвент страницы*!

    Отчаянно пытаюсь понять смысл данного проекта.

     
     
  • 3.52, Аноним (52), 11:27, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Главный смысл - уменьшить количество стороннего JS-кода, выполняемого на браузере. Вкладок до OOM-киллинга можно будет открывать значительно больше.
     
     
  • 4.84, OpenEcho (?), 12:19, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Главный смысл - уменьшить количество стороннего JS-кода, выполняемого на браузере.

    Плюс, - иметь полный контроль и надзор над клиентом

     
     
  • 5.143, хозяин кабака (?), 16:39, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну, во-первых, об этом уже знаю я. Во-вторых, об этом, разумеется, узнает китаец...

    Нет, ну ты правда надеешься пользуясь сайтом делать это как-то так чтобы никто не догадался что ты это делаешь? Учти - китаец ЭТОГО дела ооооочень не любит!

     
     
  • 6.150, OpenEcho (?), 17:39, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Нет, ну ты правда надеешься пользуясь сайтом делать это как-то так чтобы
    > никто не догадался что ты это делаешь?

    И что? это кого-то останавливает юзать интернет? Все знают что делает гугл и метаморда и ничего, кормят их исправно

    > Учти - китаец ЭТОГО дела ооооочень не любит!

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

     
  • 3.55, Аноним (55), 11:30, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    В случае HTTP/2 и HTTP/3 — нет.
     
     
  • 4.109, НяшМяш (ok), 13:46, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Да и HTTP/1 нет, если keep-alive используется.
     
     
  • 5.144, пох. (?), 16:40, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    То есть примерно всегда.

     
     
  • 6.229, НяшМяш (ok), 19:09, 13/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Просыпаемся и машем, сейчас не 2008. Все браузеры давным-давно его передают да и я не видел ни одного сайта, который бы отвечал Connection: close. Даже opennet оставляет соединение открытым.
     
  • 5.174, stillswamp (ok), 20:57, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Да и HTTP/1 нет, если keep-alive используется.

    KeepAlive не используется.

     
     
  • 6.182, Аноним (181), 22:29, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > KeepAlive не используется.

    - Используй KeepAlive, Люк! (с)

     
  • 3.146, kai3341 (ok), 17:00, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Я ещё понял бы если WebSockets, но AJAX

    Точняк, там предлагают REST или gRPC, а не Websocket. Это полная ж

     
  • 3.149, OpenEcho (?), 17:34, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Я ещё понял бы если WebSockets, но AJAX -- это же новое
    > TCP подключение и TLS-рукопожатие на *каждый эвент страницы*!

    Ну, на самом деле "keep-alive" никто не отменял, так что для обеьктивности, - то не "на каждый чих"


     
  • 3.151, Аноним (151), 17:51, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    На вебсокетах тоже есть, правда на эликсире https://github.com/phoenixframework/phoenix_live_view
     
  • 3.164, stillswamp (ok), 20:10, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Смысл проекта - полностью убрать необходимость координации между бэками и фронтами при разработке.
     
  • 3.173, stillswamp (ok), 20:48, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Я ещё понял бы если WebSockets, но AJAX -- это же новое
    > TCP подключение и TLS-рукопожатие на *каждый эвент страницы*!
    > Отчаянно пытаюсь понять смысл данного проекта.

    Pusa - протокол.

    Для понимания сути и демонстрации необходима демка.
    Демка должна быть простой - AJAX (не WS).

    Это сделано.

     
  • 3.205, Онаним (?), 09:21, 13/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Может быть гуд для нетривиальных интерфейсов, где конкретная визуалка и реакция определяется текущим состоянием сервера. Без костылей в виде рефреша при серьёзном изменении такового состояния.
     
  • 3.221, Аноним (221), 18:18, 13/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    livewire от laravel Работат на ajax

    тут вопрос больше что проще спроектировать архитектуру и отмасштабировать сервер 1  раз (или просто платить облачному провайдеру ) или нанимать дорогих фронтендеров - которые будут переписывать и оптимизировать проект каждый день на новую версию фреймворка

     
  • 2.223, Аноним (221), 18:36, 13/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > если кто-нибудь подрубит автокликер, так вообще классно будет.

    если подрубить даже на сайте SPA которое не сферический конь в вакууме и который не ходит на бекенд - будет то же самое

     
  • 2.274, rex (??), 14:53, 22/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    "сайт" может быть вообще не публичный. Просто несколько сотен разных устройств в пределах предприятия.
     

  • 1.9, Ю.Т. (?), 10:43, 12/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +9 +/
    Что-то не пойму, это заново изобретен "Web 1.0"?
     
     
  • 2.13, 41 (?), 10:49, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +11 +/
    очередной оборот колеса Сансары
     
  • 2.91, OpenEcho (?), 12:42, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Фигушки ! их сайт https://pusa.catlair.net/ даже не открывается без JS :)
     
     
  • 3.145, пох. (?), 16:41, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    кстати, да, белое пустое место - лучшая антиреклама поделки.
    Не просто без js, а без единственноверного js в распоследней версии Браузера (единственноверного, конечно, куда вы тут лезете со своим lynx, плевать нам на слепых)

     
  • 3.168, stillswamp (ok), 20:18, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Разработчикам нет необходимости работать с JS на клиенте.
    Сам JS никуда не делся.
     
     
  • 4.183, OpenEcho (?), 22:33, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Разработчикам нет необходимости работать с JS на клиенте.
    > Сам JS никуда не делся.

    Я понимаю, просто думаю было бы лучше, если при условии запрещеного ЖС, былo бы какое-то сообшение, костяк, как vue, ну или на худой конец пихуть tag <noscript> вместо пустой страницы.

    А вообще, спасибо за продукт, я уверен, он найдет свое место, особено учитывая, что в отличии от GWT, Zk, вы сделали попытку стандартизировать процессинг на бэкенде

     
     
  • 5.222, Аноним (221), 18:34, 13/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    да проект интересный
    есть аналоги - но слишком много тащат - например blazor тащит рантайм .net скопмилированный в wasm  

    было бы неплохо поддержку SSR - например включать режим полного ренддера страницы на сервере - а затем уже погружать если js функционирует

    для тех кому нужно сео или например хотят поддержку функционирования в браузерах без js

     
     
  • 6.243, stillswamp (ok), 13:14, 14/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Pusa может ПОЛНОСТЬЮ собрать всю страницу на голом html и отдать готовую.
    Это один из вариантов внутренней организации.

    пример:

    TemplateMain.html
    <html>
        <body>
            <cl content="BodyContent.html">
        </body>
    </html>

    TemplateBody.html
    Hello World

    Результат:
    <html>
        <body>
            Hello World
        </body>
    </html>

    Работает шикарно.

     
     
  • 7.259, Аноним (259), 20:50, 15/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Так ета, а зачем еще один шаблонизатор? Их уже и так выше крыши наштамповали. Есть же PHP. Или по вашему шаблонизатор написанный на шаблонизаторе работает эффективнее? Или это по принципу "этот мир придуман не нами, потому сварганим другой"?
     
     
  • 8.267, stillswamp (ok), 00:32, 16/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Простые вещи проще делать самим ... текст свёрнут, показать
     
  • 2.94, Аноним (94), 12:53, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Нет, X.
     
  • 2.147, Kuromi (ok), 17:22, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Это ответ на слишком умные, настраиваемые и контроллируемые пользовталеем браузеры. Если во времена IE страница что сказала, то и происходит - вся рекламка прогружается например, Активексы всякие, то сейчас у пользователй в арсенале есть всякие настройки разрешения страницам, фильтры и блокировщики. А это, как показала практика, изрядно раздражает сайтоделов.

    Вот пример - сделали поддержку видео в браузере и сразу появились видеобаннеры и даже встроенные рекламные видеоролики. Естественно запускались они сами сразу же и с орущей громкостью. Гугл сказал - "Хром будет блокировать автозапуск роликов с звуком" (уже нарушение идеальных стандартов как бы) и все были вынуждены звук убрать. Другие браузера разрешили блокировать автозапуск даже без звука и теперь рекламщики изгаляются чтобы ролик все таки запустить (и у них к сожалению получается).

    Отсюда и все эти подвижки в сторону "контроллировать целостность страницы", "не давать показывать код".
    Схема такая же как с Google Stadia или Geforce Now - если игры в облаке то пиратсво невозможно. Если сайты будет рендерить сервер, то у пользователя контроля не будет.

     
     
  • 3.152, Аноним (152), 18:35, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Гугл сказал - "Хром будет блокировать автозапуск роликов с звуком"

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

     
     
  • 4.163, Ordu (ok), 19:35, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Сайты не контролируют рекламу, которую они показывают. Google контролирует её. Гугл мог бы на своей стороне заблокировать доставку рекламных роликов со звуком, но это с его стороны было бы деятельностю вида мухи против гoвнa. Ему выгоднее доставить ролик, снять за это денег с рекламодателя, а потом не показывать его пользователю, чтобы не раздражать.
     
     
  • 5.199, fuggy (ok), 02:05, 13/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Не только гугл контролирует рекламу. Вот они и боролись с конкурентами, чтобы только гугл контролировал рекламу. Заодно чтобы в глазах пользователей хорошо выглядеть, типо мы против "неправильного" мёда.
     

  • 1.11, Аноним (11), 10:46, 12/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +21 +/
    В начале был простой HTML, и интернет был хорош. Потом решили, что нужно добавить свистоперделок. Потом поняли, что серверы не справляются с нагрузкой, и переложили часть работы на клиентов. Потом ещё. Потом поняли, что у клиентов всё тормозит, жрёт в три горла и срёт в две жопы, и начали переносить всё обратно. Глядишь, когда-нибудь вернёмся к чистому HTML. И всё снова станет хорошо
     
     
  • 2.22, Аноним (22), 10:57, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > Глядишь, когда-нибудь вернёмся к чистому HTML. И всё снова станет хорошо

    Ты всё проспал Аноним. Уже виток сделали и назвали AMP. Хорошо не стало...

     
     
  • 3.44, keydon (ok), 11:23, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +4 +/
    AMP это очередная попытка гугла захватить интернет и это не могло быть хорошо
     
  • 3.226, Аноним (221), 18:57, 13/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    AMP уже отменил сам гугл
     
  • 2.24, Аноним (24), 11:02, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вы можете возвращаться прямо сейчас.
     
  • 2.30, MVK (??), 11:08, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >Глядишь, когда-нибудь вернёмся к чистому HTML

    - идея глубже: в идеале отрисовка будет производиться на бэкенде, а в браузер будут оправляться отрисованные изображения

     
     
  • 3.39, Аноним (39), 11:17, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Трафик. Но вообще опера именно это и делает. Только там престо и он немного устарел. Отличный браузер, только им и пользуюсь всегда. Ну, на java me.
     
  • 3.89, fdk (?), 12:42, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Так уже сделали, есть барузер Mighty. Он стримит сайт в клиент барузера и передаёт клики на свой сервис.
     
     
  • 4.148, Kuromi (ok), 17:24, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    И как в таком браузере ходить по интернет-магазинам? Номера карточек тоже сервису отправлять?
     
  • 3.225, Аноним (221), 18:56, 13/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    давно уже веб версия libreoffice умеет отрисовыватся на канвасе или напрмер adobe photoshop тоже -  без ручного написания js
    но там свои нанотехнологии по типу компиляции декстоп приложения в wasm и переноса рендера через графический тулкит  в браузер
     
  • 2.31, Аноним (33), 11:08, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Надо идти дальше чтобы искусственный интеллект перевыполнял код еще до того как пользователь к нему обратится.
     
     
  • 3.80, YetAnotherOnanym (ok), 12:14, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    А убедить пользователя, что он хотел именно того, что выдал ему ИИ - этим уже займётся товарищ майор. Тоже, разумеется, разработанный на основе ИИ.
     
  • 3.260, Аноним (259), 20:59, 15/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Ага, и получим всякие спектры с мельтдаунами, только уже уровнем повыше ;)
     
  • 2.73, Виктор (??), 11:58, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну, собственно, так оно и есть. HTML5+CSS - решение, позволяющее делать красивые интерактивные сайты, не прибегая к костылям яваскрипта.
     
     
  • 3.276, Николай Козлов (?), 11:29, 24/12/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Ты мне скажи, как ты на чистом HTML+CSS создашь интерактивный календарь с выбором диапазона дат и моментальной фильтрацией рядом находящегося списка элементов по этому самому диапазону?!
     
  • 2.165, stillswamp (ok), 20:12, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Идеальный вариант - вернутся к чистому HTML. Именно по этому пути пуса и пошла.
    В пределе - с клиента на сервер события, с сервера на клиент контент.
     
     
  • 3.227, Аноним (221), 18:59, 13/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    идеальный но не везде

    например приложения типа гугл таблицы гугл докс и тому подобное - все на канвас перешли

    flutter для web тоже рендер через канвас внедряет

     

  • 1.23, Аноним (23), 10:59, 12/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Чем это принципиально отличается от Vue SSR?
     
     
  • 2.25, Аноним (24), 11:03, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Клиентский код 11 кб, вот чем.
     
  • 2.224, Аноним (221), 18:51, 13/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Vue SSR - это когда фронтендеры решили что неплохо бы иногда запилить бекенд (пусть и на компонентах). в принципе прикольно - чем то отдаленно похоже так delphi компоненты - только не кидаеш на форму и не настраиваешь а пишеш руками

    а с pusa наоборот - когда бекендеры думали а не плохо бы иногда запилить фронтент на php например
    и не придется становится javascriptизером и не надо  руками js трогать и с мылом потом их мыть каждый раз

     

  • 1.26, Аноним (26), 11:06, 12/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Следующий этап - компилировать полученный PHP код на JS и перенос его обратно на сторону клиента. Все что требуется - простенький транспортный протокол для работы с БД.
     
     
  • 2.29, Аноним (33), 11:07, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    для этого уже давно придумали wasm
     
  • 2.171, stillswamp (ok), 20:25, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Суть технологии - в этом нет необходимости.
    Пишем на чистом PHP без пересборок в JS.
     
  • 2.228, Аноним (221), 19:09, 13/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    уже есть https://gitlab.com/kornelski/babel-preset-php
     

  • 1.27, Аноним (27), 11:06, 12/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Забавно - джаваскрипт гитлаба не смог мне на мобиле протокол показать.
     
  • 1.28, Аноним (33), 11:07, 12/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    над названием еще надо поработать.
     
     
  • 2.169, stillswamp (ok), 20:19, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Мы не про маркетинг. Мы про кодинг. Но Pusa - хорошее короткое имя.
     

  • 1.32, garrick (?), 11:09, 12/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Я смотрю любят программисты JavaScript велосипеды изобретать - JSF/GWT/Vaadin/ZKoss не слышали, надо обязательной свой забабахать.
     
     
  • 2.97, Аноним (97), 12:57, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    У всех этих технологий есть фатальный недостаток, но однажды и у этой технологии его найдут
     
  • 2.105, another_one (ok), 13:34, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Эталонная реализация Pusa написана на языке PHP
     
  • 2.190, Аноноша (?), 23:55, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Я смотрю любят программисты JavaScript велосипеды изобретать - JSF/GWT/Vaadin/ZKoss не слышали, надо обязательной свой забабахать.

    Судя по приведенным примерам программисты на Java не могут осилить JavaScript и изобретают свои велосипеды.

     

  • 1.37, th3m3 (ok), 11:12, 12/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    А можно просто отдавать html без всякого говнокода на js и будет всё быстро, тормозить будет нечему.
     
     
  • 2.47, Аноним (47), 11:25, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >А можно просто отдавать html без всякого говнокода на js и будет всё быстро, тормозить будет нечему.

    Это не современно и не модно.

     
  • 2.48, Растоманя (??), 11:25, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Сейчас на васм Раст так делает
     
  • 2.119, bugmenot (??), 14:54, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Можно. Но тебе это не понравиться
     
     
  • 3.180, th3m3 (ok), 22:02, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Очень нравится. Уже давно использую js - минимально. А то и совсем не использую. Всё летает, даже на слабых устройствах.
     
  • 2.275, rex (??), 15:00, 22/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    оптимально не весь хтмл заново, а дифф.
     

  • 1.51, Аноним (24), 11:27, 12/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Откуда эту настойчивая потребность избавления от JS? В устойчивой неспособности на нем программировать? Зря, хороший язык.

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

     
     
  • 2.61, th3m3 (ok), 11:41, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +6 +/
    > Откуда эту настойчивая потребность избавления от JS?

    Например, сходу:

    - С js добавляются тормоза.
    - C js приходится качать тонну кода.
    - C js менее безопасно, чем без него.
    - C js - пользователь получает какую-то программу на своё устройство, которая хрен знает что делает на его устройстве. А пользователя никто даже не спрашивает.
    - ???
    - Тормоза.

    Я стараюсь минимально использовать js, а то и совсем без него. Всё летает, все довольны. Пора формировать движение за сеть без js!

     
     
  • 3.63, Аноним (24), 11:49, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Т.е. адекватное потребностям использование JS вы не допускаете даже?
    Проблема ведь не в технологии.
     
     
  • 4.72, Аноним (52), 11:58, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Вот минимально использовать и есть адекватное использование. А потребности... ну у авторов кода могут быть извращённые потребности.
     
  • 4.95, YetAnotherOnanym (ok), 12:55, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Если технология позволяет безнаказанно г нокодить - проблема в ней Си не позво... большой текст свёрнут, показать
     
     
  • 5.108, Аноним (24), 13:44, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Гуглы перестают выдавать сайт в поиске, если он тормозит и жрет ресурсы. Вебмакаки из кожи вон лезут, чтобы ускорить загрузку страниц.
     
  • 5.198, фттщ (?), 02:00, 13/11/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ахаха, си не позволяет говнокодить, 70000 строк кода в геофизическом софте с тремя тысячами магических чисел
     
  • 3.68, Аноним (68), 11:54, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Я стараюсь минимально использовать js, а то и совсем без него. Всё летает, все довольны.

    я заинтригован.
    не поделитесь ли ссылкой на ваш портфолио?
    (да простит меня модератор за такие запросы).

     
     
  • 4.86, OpenEcho (?), 12:34, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Не его, но с миниум JS (а некоторые темы и вообще без): https://gohugo.io/showcase/
     
     
  • 5.104, Аноним (104), 13:31, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Там без жс даже картинки не грузятся, хороший пример.
     
     
  • 6.111, НяшМяш (ok), 13:52, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    app.bundle.js - 133кб
    app.кучабуков.js - 157кб
    buttons.github.io - 19кб
     
  • 6.142, OpenEcho (?), 16:37, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Там без жс даже картинки не грузятся, хороший пример.

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

    https://www.linode.com/docs/ сделаная на хьюгев полне рабочая без ЖС

     
     
  • 7.269, gogo (?), 02:11, 16/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Какое у вас замечательное чувству юмора. Примеры один лучше другого )
    Вы не пробовали для разнообразия самому зайти туда с отключенным яваскриптом? )))
     
     
  • 8.272, OpenEcho (?), 10:24, 16/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    А где я говорил что вообще без ЖС Я говорил, - с миниумом JS Если Вы отл... большой текст свёрнут, показать
     
  • 3.110, НяшМяш (ok), 13:50, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Забавно то, что в браузере тормозит не JS, а DOM который JSом теребят стотыщраз в секунду. И минимальное использование JS это правильная стратегия. А бывает так, что фронтендеры, чтобы вывести обычную таблицу в браузере, вместо <table> накручивают лютого монстра на React, где каждая ячейка - это отдельный компонент рендерящийся в <div>.
     
     
  • 4.120, bugmenot (??), 14:57, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Как будь-то <table> не рендерится.
     
  • 2.67, Аноним (68), 11:52, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Откуда эту настойчивая потребность избавления от JS? В устойчивой неспособности на нем программировать?

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

     
  • 2.69, Виктор (??), 11:54, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Нет. Причина - в безопасности. Яваскрипты очень часто используются для сбора информации с компьютера и для размещение на компьютере посетителя вредоносного кода. Поэтому у людей, заботящихся о своей безопасности, как правило, исполнение яваскриптов запрещено или ограничено, и такой человек скорее покинет сайт, чем будет включать яваскрипты для него.
     
     
  • 3.270, gogo (?), 02:13, 16/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Плюсую.
    Даже специально временно включил js для оупеннета, чтобы проголосовать плюсиком ))))
     
  • 2.93, Ю.Т. (?), 12:51, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Откуда эту настойчивая потребность избавления от JS? В устойчивой неспособности на нем
    > программировать? Зря, хороший язык.

    Язык-то хороший. Проблема в том, что работа в инфосети превратилась (превращена) в постоянное исполнение неведомо кем сделанных приложений У СЕБЯ ДОМА. Это и HTML5 касается, насколько понимаю.

     
     
  • 3.106, Аноним (24), 13:42, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Раньше неведомо кем сделанные приложения были нативными и работали не в виртуальной машине браузера, а прямо на вашей ОС. Что-то изменилось?
     
     
  • 4.112, НяшМяш (ok), 13:54, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Человек ностальгирует по временам, когда возле компа дышать нельзя было, чтобы он не поломался.
     
  • 4.114, Ю.Т. (?), 14:14, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Раньше неведомо кем сделанные приложения были нативными и работали не в виртуальной
    > машине браузера, а прямо на вашей ОС. Что-то изменилось?

    В те времена у каждого приложения были фамилия, имя и отчество. ЕВПОЧЯ.

     
  • 2.166, stillswamp (ok), 20:13, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Мы хорошо знаем JS и умеем на нем писать.
    Причина не в JS а в наличии необходимости координации между бэками и фронтами. Это финансово расходно.
     

  • 1.58, Аноним (152), 11:36, 12/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    >недоступность основного кода со стороны фронтэнда

    Сразу на *** такие сайты.

     
     
  • 2.60, Аноним (52), 11:40, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Предпочитаешь, чтобы чужой код исполнялся в твоём браузере? Лично я бы предпочёл, чтобы код исполнялся на железе того, кто этот код писал.
     
     
  • 3.70, Аноним (68), 11:55, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    не все сервера принадлежат программистам.
     
     
  • 4.74, Аноним (52), 12:02, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Не важно, пусть тем, кто заказал разработку сайта.

    PS Будет тормозить, следующий раз подумает, стоит ли так перегружать страницы динамическими украшательствами. А то же, когда у клиента тормозит, хозяину-то сайта не видно.

     
     
  • 5.121, bugmenot (??), 14:59, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > А то же, когда у клиента тормозит, хозяину-то сайта не видно

    Ну вообще-то для этого есть тестеры, которые тестируют работу

     
     
  • 6.187, Аноним (187), 23:33, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Ну так они его могут протестировать на i7 с 32 GiB оперативы.
     
     
  • 7.214, Рмшъ (?), 11:17, 13/11/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Если хозяин продаёт что-то дорогое, то он может нарочно решить не тестировать на медленном железе, потому что решил, что его клиент может позволить себе быстрое.

    Есть и другие. Например, заказчик сделал себе в системе масштаб 150% и просит уменьшить сайт, а то всё крупное стало. То, что у посетителей станет мелко, его не волнует. Причём, он-то своим сайтом вряд ли будет пользоваться как посетитель, поэтому его вообще не должно волновать, как он видится на его странном компе.

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

     
  • 7.215, Рмшъ (?), 11:17, 13/11/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Если хозяин продаёт что-то дорогое, то он может нарочно решить не тестировать на медленном железе, потому что решил, что его клиент может позволить себе быстрое.

    Есть и другие. Например, заказчик сделал себе в системе масштаб 150% и просит уменьшить сайт, а то всё крупное стало. То, что у посетителей станет мелко, его не волнует. Причём, он-то своим сайтом вряд ли будет пользоваться как посетитель, поэтому его вообще не должно волновать, как он видится на его странном компе.

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

     
  • 3.115, Аноним (152), 14:29, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Предпочитаю контролировать, какие данные и каким образом использует чужой код. Если код плохой, то я его модифицирую и он отдаётся браузеру вместо оригинального.
     
     
  • 4.186, Аноним (187), 23:30, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Ты что же, каждый сайт, на котором JS есть, переделываешь?
     
  • 4.232, Аноним (221), 19:27, 13/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    а это случайно не ты тот чувак который любил писать и бекенд и фронтент на js, говорил что все класно нравится и еще потом его в дурку забрали?
     
  • 3.177, fuggy (ok), 21:14, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Сколько раз их учили что GPL, даже GPLv3 не делает код свободным, который исполняется на чужих серверах. Что позволяет легко форкнуть такой GPL проект и не публиковать изменений. Для этого надо использовать AGPLv3, чтобы код исполняемый на чужих серверах оставался свободным для пользователя.
     
  • 2.65, Аноним (24), 11:50, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Выйди с этого. Фронтенд никак не может получить перловый код с сервера :)
     
  • 2.170, stillswamp (ok), 20:22, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Ну и напрасно.
    Юзеру, а их большинство глубоко без разницы открытый код или нет. Они просто пользуют сайт и все.
    А вот заказчик - кто платит деньги - предпочитает код оставить себе.
     
  • 2.231, Аноним (221), 19:25, 13/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    ничего страшного если вы просто не попадаете в ЦА владельцев подобных сервисов
     

  • 1.59, Виктор (??), 11:38, 12/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Яваскрипт придумали именно для того, чтобы разгрузить сервер и канал, здесь же - наоборот, нагрузка переносится с клиента на сервер. Это то, что касается нагрузки. Но есть и другая сторона - безопасность. Перенос исполнения кода на сторону сервера приведёт к тому, что на сервер придётся передавать информацию о клиенте, такую, как разрешение экрана и тому подобное, которую яваскрипт может обработать локально, ничего на сервер не передавая. Что же касается сокрытия бесценных авторских прав авторов скриптов, то с этим неплохо справляется и обфускация.
     
     
  • 2.62, th3m3 (ok), 11:43, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Яваскрипт придумали именно для того

    Чтобы клиентские устройства тормозили. Вот его основная фича.


     
     
  • 3.79, псевдонимус (?), 12:10, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Чтобы серваки не тормозили. А на юзверей им нас. Рать.
     
     
  • 4.92, Аноним (90), 12:49, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Хоть кто-то не отрицает))
    Но есть вот фанбои, которые на полном серьёзе думают, что не для этого.
     
  • 2.64, Аноним (52), 11:50, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Вот от этой самой обфускации кода, исполняемого на клиенте, проблем с безопасностью гораздо больше. Ибо обфусцированное может всё тоже, что не стоило бы на сервер передавать, таки молча передавать.
     
  • 2.98, YetAnotherOnanym (ok), 12:59, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > яваскрипт может обработать локально, ничего на сервер не передавая

    Как будто это может помешать отправить на сервер ВСЁ, что скрипт сможет собрать.

     
  • 2.116, Аноним (152), 14:31, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Что же касается сокрытия бесценных авторских прав авторов скриптов, то с этим неплохо справляется и DMCA takedownы и судебные иски.

    Пофиксил.

     
  • 2.230, Аноним (221), 19:23, 13/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Яваскрипт придумали именно для того, чтобы разгрузить сервер и канал, здесь же - наоборот, нагрузка переносится с клиента на сервер. Это то, что касается нагрузки.

    в определенной нише это вполне имеет смысл - сервисы расчитанные на дешевые мобильные устройства, или сервисы типа google stadia и им подобные взамен увеличения интернет трафика предлагают уменьшение требований к аппаратным ресурсам

     
  • 2.233, Аноним (221), 19:33, 13/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Перенос исполнения кода на сторону сервера приведёт к тому,

    приведет к тому что бизнес логика хранится на сервере - будет сложнее произвести реверс инженеринг
    опять же на примере google stadia - приложение не спиратиш

     

  • 1.66, test (??), 11:50, 12/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Мдаааа, у них с головой все в порядке ?

    Кричали что php/python крутящийся на сервере это типа плохо а давайте часть логике в js на клиента перетащим. Мда ....

     
     
  • 2.75, Лже_ит (?), 12:03, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    В принципе андроиды работают быстро что ещё надо ? Тоже мое думаю : ничего . Другие же говорят в этом случае "не нужно" что c первых букв при другой раскладке звучит как yt ye;yj , а кто использует ytd ? Правильно ютуб
     
  • 2.78, псевдонимус (?), 12:09, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Не взлетит. Так-то по идее так и следовало делать.
     
     
  • 3.85, Лже_ит (?), 12:20, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Я думаю они наедятся этого всего от пуза судя по тому что фремиворк пузатый
     
  • 2.172, stillswamp (ok), 20:29, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    У нас с головой все в порядке.
    JS - место размещение компонентов MVC не страдает.

    При этом браузеру (клиенту) отводится его основная суть а именно ОТОБРАЖЕНИЕ.
    Это наиболее правильное использование клиентской стороны в текущих условиях инета.

     

  • 1.77, псевдонимус (?), 12:08, 12/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Не взлетит. Не модно. Должно жрать на стороне клиента.
     
     
  • 2.188, Аноним (187), 23:40, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну да, производители мобилок будут сильно против.
     
  • 2.234, Аноним (221), 19:36, 13/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    подобная идея давно уже используется - начиная от turbolinks и заканчивая blazor и рендером gnome окружения в браузере

     

  • 1.81, лолшто (?), 12:15, 12/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Т.е. ты такой сидишь в своей конторке и думаешь: "О! А давайте сэкономим на зажравшихся фронтах и будем эту логику на бекэнде выполнять!" Выносишь все обработчики и состояние на бэк и вдруг понимаешь, что у тебя не одно соединение, а тысячи-миллионы и что теперь тебе нужен новый тарифный план в этих ваших облаках.
     
     
  • 2.102, псевдонимус (?), 13:20, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Т.е. ты такой сидишь в своей конторке и думаешь: "О! А давайте
    > сэкономим на зажравшихся фронтах и будем эту логику на бекэнде выполнять!"
    > Выносишь все обработчики и состояние на бэк и вдруг понимаешь, что
    > у тебя не одно соединение, а тысячи-миллионы и что теперь тебе
    > нужен новый тарифный план в этих ваших облаках.

    А какого лешего юзверь должен тратить свои вычислительные мощности ради вашей рекламы?

    Не переживай, а то переживе..

    Все по-старинке останется. ФФ

     
  • 2.235, Аноним (221), 19:43, 13/11/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    а если подумать над архитектурой и UX - то может оказатся все не так уж и плохо
    в осбености если это не сервис типа VK на милион пользователей, а специфическое веб приложение
     
     
  • 3.242, stillswamp (ok), 13:09, 14/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Pusa прекрасно справляется со значительной нагрузкой.
    В основу поддержки сессий Pusa заложена возможность поддержки множества вебсерверов (точек входа) без необходимости сессионной синхронизации.

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

     

  • 1.82, Аноним (82), 12:15, 12/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Хорошая технология для каких-нибудь дашбордов

    Я видел как такое работает на Phoenix LiveView, очень круто, только там вебсокет а не ajax

     
  • 1.87, Аноним (87), 12:36, 12/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Все просто, это нужно для того, чтоб на мелких проектах,
    PHP-макака могла запилить проект в одно рыло, без
    JS-макаки
     
     
  • 2.236, Аноним (221), 19:46, 13/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    полностью согласен - ато эти js-макаки понаделают а потом уволятся, потомутчо новый фреймворк веть вышел а на нем не дают переписывать, да и старый код поддерживать скучно
     

  • 1.88, Аноним (88), 12:36, 12/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Ну и велосипед
     
     
  • 2.96, turbo2001 (ok), 12:57, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    У кого ещё такое есть, если не считать блейзор?
     
     
  • 3.100, Аноним (100), 13:11, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Unpoly и Htmx
     
  • 3.101, Аноним (87), 13:13, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    У всех:
    https://github.com/dbohdan/liveviews
     
     
  • 4.107, turbo2001 (ok), 13:43, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Спасибо.
     

  • 1.99, Аноним (99), 13:09, 12/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Во блин. А я давно уже думал, что это на самом деле бред писать вэб приложения на двух языках - один для бэкэнда, а другой для фронтэнда. Раньше был смысл, когда странички считались чем-то вроде текста. Но сейчас то, блин, это уже полноценные приложения и в браузере мы видим по сути только морду. Так зачем вот эта огромная куча костылей? Все эти html, css, js и еще куча всякой другой ереси?
     
     
  • 2.113, НяшМяш (ok), 13:56, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > бред писать вэб приложения на двух языках - один для бэкэнда, а другой для фронтэнда.

    Пиши на одном. NodeJS уже давно существует /s

     
     
  • 3.167, stillswamp (ok), 20:16, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    NodeJS - пишите. Это хорошо.
    Речь идет не об исключении JS а об уменьшении объема кода на клиенте.
    По хорошему - сведение его в 0, если данный стандарт разовьется и будет принят браузерами.
     
     
  • 4.175, Аноноша (?), 21:01, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > По хорошему - сведение его в 0, если данный стандарт разовьется и будет принят браузерами.

    Не будет. Стандарт - это гугл, а они развивают JS, WASM и прочие веб стандарты. Браузер - это своего рода ОС, давно уже пора это понять.

     
  • 4.194, лолшто (?), 00:55, 13/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > NodeJS - пишите. Это хорошо.
    > Речь идет не об исключении JS а об уменьшении объема кода на
    > клиенте.
    > По хорошему - сведение его в 0, если данный стандарт разовьется и
    > будет принят браузерами.

    Либо ты платишь за ресурсы, либо пользователь. Крупные игроки на рынке деньги считать умеют и дополнительную нагрузку на бек брать не будут.

     
     
  • 5.197, stillswamp (ok), 01:35, 13/11/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Безусловно.
    При этом по имеющемуся опыту раскходы на технические ресурсы ничто по сравнению с расходами на персонал. Pusa про второе...
     
  • 3.237, Аноним (221), 20:05, 13/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Пиши на одном. NodeJS

    1 язык != 1 платформа
    попробуй напиши  один и тот же код чтобы запускался и в браузер и node.js без костылей и подпорок

    вот deno его заменитель действительно откроет всем ворота в светлое будущее, когда будет 1 код и для браузера и для сервера без костылей в виде транспиляторов, тысячи сборoшиков и прочей ереси чернокнижников

     
  • 2.123, Аноним (123), 15:05, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Это странное мнение, обычно программные продукты пишутся более чем 1 человеком, и нет никакой проблемы в разных языках, да и знать несколько языков не проблема вообще. По мне так наоборот, писать на JS то что можно писать на нормальном ЯПе, спроектированном не за неделю - бред.
     

  • 1.103, mos87 (ok), 13:27, 12/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Выключите свет!
     
  • 1.117, Мировой Ковидлостан (?), 14:40, 12/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Как стимулировать продажи железа?
    - Бесконечно раздувать овносайты.
     
  • 1.122, Аноним (122), 15:03, 12/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Что только не придумают, лишь бы JS не учить
     
     
  • 2.209, Аноним (-), 10:21, 13/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    что только не пишут, чтобы оправдать знание только одного языка Javascript
     

  • 1.132, Аноним (132), 15:33, 12/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вперед в здоровое прошлое?
     
  • 1.176, fuggy (ok), 21:07, 12/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Этакий тонкий клиент для толстых сайтов. Конечно не zero javascript, но всё же только минимальная прослойка, а вся нагрузка на сервере. Но есть минус — это огромное количество запросов на каждый чих, на какой-нибудь blur или hover, что вполне решается просто css.

    А вообще стоило бы смотреть в сторону TwinSpark, HTMx. Они тоже занимают 11кБ размера (золотой стандарт я погляжу) и при этом всё декларативно. А взглянув на ужасный протокол Pusa чуть плохо не стало, пусть дорабатывают.

     
     
  • 2.178, stillswamp (ok), 21:36, 12/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Этакий тонкий клиент для толстых сайтов. Конечно не zero javascript, но всё
    > же только минимальная прослойка, а вся нагрузка на сервере. Но есть
    > минус — это огромное количество запросов на каждый чих, на какой-нибудь
    > blur или hover, что вполне решается просто css.

    Верно. Это и должно решаться через CSS. Таким образом количество запросов - умеренное.

    > А вообще стоило бы смотреть в сторону TwinSpark, HTMx. Они тоже занимают
    > 11кБ размера (золотой стандарт я погляжу) и при этом всё декларативно.
    > А взглянув на ужасный протокол Pusa чуть плохо не стало, пусть
    > дорабатывают.

    Декларации недостаточно.
    С удовольствием выслушаем инфу о недостатках. Объективную учтем.

     

  • 1.184, ыы (?), 22:34, 12/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вот класно бы было запустить Pusa на MuditaOS
     
     
  • 2.193, stillswamp (ok), 00:32, 13/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Вот класно бы было запустить Pusa на MuditaOS

    Чем объясняется такое экзотичное желание?

     
     
  • 3.213, ыы (?), 10:48, 13/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Синергией процесса...
     
  • 2.238, Аноним (221), 20:10, 13/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    заявлена что можно реализовать протокол на  Go - а в Go как раз есть встроенный веб сервер, теоретически можно скомпилировать через cgo под микроконтроллер, так почему бы нет?
     

  • 1.185, KAE (?), 22:46, 12/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Интересно, можно ли таким образом ддосить ресурсы, - просто эмулировать перемещение курсором по страничке?
     
     
  • 2.192, stillswamp (ok), 00:12, 13/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Интересно, можно ли таким образом ддосить ресурсы, - просто эмулировать перемещение курсором
    > по страничке?

    ддосить ресурсы куда как проще без мышки. возить эмулируемой мышкой слишком дорого.

     

  • 1.189, Аноноша (?), 23:46, 12/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Состояние фронтэнда формируется но не контролируется бэкендом, что делает разработку для Pusa схожей с кодом для видеокарты или Canvas, где результат исполнения не контролируется разработчиком

    Кто объяснит, что здесь написано? Что значит "схожей с кодом для видеокарты Canvas, где результат исполнения не контролируется разработчиком"?

     
     
  • 2.191, stillswamp (ok), 00:03, 13/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    >> Состояние фронтэнда формируется но не контролируется бэкендом, что делает разработку для Pusa схожей с кодом для видеокарты или Canvas, где результат исполнения не контролируется разработчиком
    > Кто объяснит, что здесь написано? Что значит "схожей с кодом для видеокарты
    > Canvas, где результат исполнения не контролируется разработчиком"?

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

     

  • 1.195, лолшто (?), 01:09, 13/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    В новости GPLv3, а в репозитории чего-то про лицензию ничего и нет.
     
     
  • 2.196, stillswamp (ok), 01:23, 13/11/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > В новости GPLv3, а в репозитории чего-то про лицензию ничего и нет.

    Исправлено.

     
     
  • 3.200, fuggy (ok), 02:18, 13/11/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вы хоть понимаете что GPLv3 для серверного кода почти бесполезен? В этом случае правильнее использовать AGPLv3.
     
     
  • 4.208, stillswamp (ok), 10:12, 13/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Вы хоть понимаете что GPLv3 для серверного кода почти бесполезен? В этом
    > случае правильнее использовать AGPLv3.

    Лицензия изменена, ОДНАКО наивно полагать, что подобные условности позволяют рулить судьбой кода.

    Это проблема скорее сообщества, а не наша.
    Идея в выпущена.

     
  • 4.210, stillswamp (ok), 10:24, 13/11/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Вы хоть понимаете что GPLv3 для серверного кода почти бесполезен? В этом
    > случае правильнее использовать AGPLv3.

    Небольшое дополнение.
    https://gitlab.com/catlair/pusa/-/blob/main/site/pusa/src/language_default/man

     
  • 2.203, Аноним (203), 08:44, 13/11/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В верхнем правом углу сайта указана лицензия GPLv3.

     

  • 1.206, Аноним (206), 09:23, 13/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Есть pjax livewire hotwire turbolink

    А это чисто пэхэпэ или тащит за собой фреймворк?

     
     
  • 2.211, stillswamp (ok), 10:25, 13/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Есть pjax livewire hotwire turbolink
    > А это чисто пэхэпэ или тащит за собой фреймворк?

    Это чистый PHP без сторонних библиотек.
    JS вложен в проект. Его не много.

     
     
  • 3.245, stillswamp (ok), 13:17, 14/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    После оптимизации и уборки коментов полный код JS для PUSA менее 7кб. И более 7кб он едва ли будет.

    https://pusa.catlair.net/?template=index.js

     

  • 1.207, Аноним (-), 10:07, 13/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    эта новость пугает Javascript бандерлогов.
     
     
  • 2.212, ыы (?), 10:47, 13/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Почему? Каждый из них получит в свое распоряжение миллионы серверов... Теперь они станут главными...
     

  • 1.217, Ordu (ok), 16:55, 13/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Они сломали кнопку back в браузере.
     
     
  • 2.248, stillswamp (ok), 21:41, 14/11/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Они сломали кнопку back в браузере.

    Исправлено.

     
     
  • 3.250, Ordu (ok), 22:05, 14/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    О, круто. Действительно работает теперь.
     

  • 1.218, Аноним (221), 18:05, 13/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    а умеет в SSR или есть ли планы по его реализации? т е сначала рендерим страницу полностью а далее через этот протокол - при этом чтоб код одинаковый был
     
     
  • 2.241, stillswamp (ok), 13:05, 14/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Pusa это делает в том числе.

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

    Выбор пути организации потрохов остается на усмотрение разработчика.

     

  • 1.219, Аноним (219), 18:10, 13/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    видимо, кто то из пыхошколоты набрел пару лет назад на http://hrud.net
    но не понял сути, и решил сделать все на пхп и для масс-веба ))
     
     
  • 2.220, Аноним (219), 18:15, 13/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    да простят меня авторы "пуса" но это было первое впечатление.
    приношу извинения, если кого обидел.

     
     
  • 3.239, stillswamp (ok), 12:59, 14/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Не обидели. IT не для обидчивых.

    Сфера применения HRUD:

    Где нужно применять HRUD ? Разработка АРМ, личных кабинетов, и др. приложений с web-интерфейсом, для которых необходима поддержка сложной логики поведения или взаимодействия с клиентом, поддержка «сложного состояния клиента».
    Это «statefull технология», которая выгодна при организации сложных бизнес-процессов, быстрой разработки промышленных АРМ.

    Сфера применения Pusa значительно шире и все перечисленное так же.

     
     
  • 4.252, dplsoft (ok), 00:30, 15/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    ваш оптимизм конечно похвален, но я бы сказал что вы заявляете пока еще труднопо... большой текст свёрнут, показать
     
     
  • 5.253, stillswamp (ok), 09:57, 15/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Благодарю за длинный ответ Отвечу кратко по существу 1 Pusa - результат работ... большой текст свёрнут, показать
     
     
  • 6.255, dplsoft (ok), 12:48, 15/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    пока отвечу кратко, потом с вашего позволения дополню и так пока про leaflet ... большой текст свёрнут, показать
     
     
  • 7.257, stillswamp (ok), 20:40, 15/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    1. Вы предлагаете выполнить полноценную работу. Работа = денги.
    2. Постановка крайне предварительна и требует уточнения:
    - кто провайдер карты (api)?
    - если API провайдера подразумевает JS то, есть ли у него событие завершения драгдропа?
    - представьте api для получения информации о камерах.

    :)

     
     
  • 8.261, dplsoft (ok), 22:53, 15/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    нет, я прошу вас сделать демонстрационный кейс, туториал, пример того, как инте... большой текст свёрнут, показать
     
     
  • 9.263, stillswamp (ok), 23:59, 15/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    При наличии события оно может быть направлено на Back, и будет возвращен результ... текст свёрнут, показать
     
     
  • 10.268, dplsoft (ok), 01:51, 16/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    а у вас есть примеры того как это делать потому что ничего похожего в тех трех ... большой текст свёрнут, показать
     
     
  • 11.271, stillswamp (ok), 09:28, 16/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Благодарю за внимание проекту Добавлен пример динамической загрузки контента б... текст свёрнут, показать
     
  • 3.240, stillswamp (ok), 13:00, 14/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    -
     

     ....большая нить свёрнута, показать (11)

  • 1.246, Цезий Родонович (?), 14:23, 14/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Они придумали VNC
     
     
  • 2.247, stillswamp (ok), 16:48, 14/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Они придумали VNC

    Не совсем. Сравнение с VNC близко с тем отличием, что со стороны сервера не отстроенный контент а динамически собираемый на основании запросов. В этом и идея.

    И да... все это только на браузере через REST - ничего боле у клиента.

     

  • 1.249, Aleksey Fomkin (?), 21:52, 14/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Не могу не упомянуть свой проект "Королев" для языка Scala, который развиваю с 2016 года. https://github.com/fomkin/korolev
     
     
  • 2.251, stillswamp (ok), 22:08, 14/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Не могу не упомянуть свой проект "Королев" для языка Scala, который развиваю
    > с 2016 года. https://github.com/fomkin/korolev

    Предлагаю обсудить в телеге голосом. Суть беседы:
    - сравнение схем;
    - представление похожих и различных моментов статьей;

    Будет заинтересованность - прошу ответить сюда: https://t.me/pusa_catlair_net.

    По итогам беседы:
    - заберем удачные мысли в Pusa;
    - есть что и нам предложить для вас.

     

  • 1.262, Аноним (262), 23:39, 15/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Погодите, GWT и подобные проекты уже похоронили
     
     
  • 2.264, stillswamp (ok), 00:01, 16/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Google Web Toolkit — свободный Java-фреймворк, который позволяет веб-разработчикам создавать Ajax-приложения. Его особенность — компилятор Java -> JavaScript, позволяющий почти всю разработку клиента и сервера реализовать на основе Java и лишь на последнем этапе создать соответствующие JavaScript, HTML и CSS.

    Pusa НЕ создает JavaScript, НЕ выполняет перекомпиляций, НЕ тянет на клиент JS под специфику запроса, НЕ использует какой либо сторонний код JS ни в каком виде, если того не пожелает разраб.

     

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



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

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