Comments (14)
Хмм, знаешь, я подумал что на большую часть вопросов я отвечу просто рассказом в начале плюс демкой того, как оно работает. Но я на твои могу прям тут ответить, а на стриме уточнить, если надо будет.
- Потому что был/есть сервер-сайд рендеринг, а всё остальное помогало минимально — попробую это чуть раскрыть.
- Я наверное вообще в целом про SPA, чем про один конкретный реакт. :)
- На самом деле с радостью, но у него есть 1 вещь, которую Карсон похоже любит, что ли: наследование. Меня она тупо бесит. Я покажу потом пример, о чём речь, но он чёта вообще не горит желанием это менять, а я не могу себя заставить юзать. Я бы сказал, что это можно вообще пообсуждать, в чём разница с htmx (и почему unpoly кошмар :)).
- Работает клёво, лучше чем стандартные "контроллер + шаблон", так что пока так и продолжаем
- Кароч история такая. Если ты даёшь браузеру с сервера готовый хтмл - у тебя всё быстро. А если ты шлёшь какие-то куски, жсоны, объединяешь это всё - то через некоторое время у тебя всё медленно. :) Життя бентежне! Я разное попробовал и понял, что цель - уменьшение кол-ва жса. А это знач надо как можно больше всего перенести на сервер.
- Мы отдаём страницы для анонимов и потом подгружаем кусочки для авторизованного юзера. С дебагом вслух, окей? А то хз чё писать, вроде как-то терпимо всё.
- (executeRequests 16) Та не, просто игрался, надо ж какое-то время выбрать, за какое запросы в батч соберутся? Ну как-то так, типа кто за кадр не успел - не так и хотел.
- (IntersectionObserver) Слушай, интересно, вполне можно сделать видео с разбором кода. Оно self-contained, довольно маленькое... только не понимаю до конца, как это сделать, чтоб было не скучно. :)
from twinspark-js.
Таймаут то херня! Вопрос в том шоб обратно все распарсить.
Но ты меня убедил, как нить по свободе изучу вопрос :)
from twinspark-js.
Figma - це точно коли не треба :)
from twinspark-js.
- Є отакий екшен
twinspark.func({anon: (o) => !window.auth()});
А потім юзаєм отак (см в сорсі kasta.ua):
<div id="up"
ts-req="/api/v2/ssr/header"
ts-req-selector="#up"
ts-req-before="anon, prevent, gtmOnly chua-anon"
ts-trigger="load"
class="header">
ts-req-before
заважає йому виконуватися для аноніма, а так load
триггерне завантаження цього елементу для звичайного користувача.
-
Так, але ми це й так робили для того, щоб серверний хтмл якомога ефективніше кешувати
-
А ми оперуємо компонентами, просто деякі компоненти виставляються в HTTP-апі. Зараз це трохи ручний процес (хтось йде і додає новий урл для компоненти), але я хочу зробити якийсь загальний механізм і для виставлення, і для використання.
from twinspark-js.
@piranha Спасибо! Ждем стрима.
from twinspark-js.
А я правильно понял, что Vaadin на беке кучу жса генерит по инструкциям на джаве? Или в чём там суть?
from twinspark-js.
@piranha Да, основная идея это пилить убийцы экселей и тп руками корпоративных жавистов - в браузере.
Клиентская часть это чисто вьюшка(раньше на GWT щя веб компоненты) и да это дело из готовых блоков на Java собирается. Логика на сервере гоняется поэтому оно на каждый чих раундтрипит. Кто-то пытался Clojure прихреначить но хзн. Вопрос только один. Зачем это в браузере если оно с пингом работать не будет 😕
Демка https://demo.vaadin.com/dashboard
from twinspark-js.
На самом деле с радостью, но у него есть 1 вещь, которую Карсон похоже любит, что ли: наследование. Меня она тупо бесит. Я покажу потом пример, о чём речь, но он чёта вообще не горит желанием это менять, а я не могу себя заставить юзать. Я бы сказал, что это можно вообще пообсуждать, в чём разница с htmx (и почему unpoly кошмар :)).
Работает клёво, лучше чем стандартные "контроллер + шаблон", так что пока так и продолжаем
А нельзя законтрибутить в htmx конфиг который эту фишку вырубает? Или она прямо там весь код пронизывает? Тут кажется что-то в этом духе обсуждали и даже замаржили bigskysoftware/htmx#244
from twinspark-js.
Ну мож, надо подумать. Мне просто кажется что конфигурация такого левела - это плохо. Эта херня учит плохому, вот шо. Но нельзя не отметить то, что хтмх хорошо пошел и чувак прилично сил вложил и продолжает.
Кароч, надо подумать. Вкороткую - сапортить твинспарк много времени не занимает, зато он работает ровно как задумано. :)
Ну я думал думал, и батчи тоже придется контрибьютить, а это наносит довольно серьезные ограничения в виде того как хтмл с сервера надо возвращать. В твинспарке оно так задумано, а там обратную совместимость поломает, или придется выдумывать два режима получения...
А без батчей эта вся херня становится неэффективной до крику)
from twinspark-js.
@piranha Про батчи тоже тикеты были bigskysoftware/htmx#430 и bigskysoftware/htmx#129 (магия какая-то).
Батчи как адхок с таймером должно быть несложно запихнуть. Может как реальное расширение уже попотеть
прийдется.. Но интерес к этому похожее есть. Кстати у них интересные расширения есть.
from twinspark-js.
Ну я думал думал, и батчи тоже придется контрибьютить, а это наносит довольно серьезные ограничения в виде того как хтмл с сервера надо возвращать. В твинспарке оно так задумано, а там обратную совместимость поломает, или придется выдумывать два режима получения...
Немного поколупал. Там для парсинга ответа есть экстеншен поинт transformResponse
его юзает темплейтер
может прямо из этой чтуки и посвапать дополнительные элементы/тригирить эвенты на худой конец 🤔
from twinspark-js.
@piranha Если я правильно понял то логика наследование запихана в getClosestMatch
который просто рекурсивно чекает родительский элемент. Так что тут вообще просто будет это дело вырубить конфигом/патчем.
from twinspark-js.
У яких випадках twinspark не треба юзати? Anti-cases?
from twinspark-js.
- як ви хендлите інший юай для авторизованих користувачів?
- чи я правильно розумію, що кожний блок (який для авторизованих виглядяє по іншому) має зробити xhr, щоб отримати новий ui?
- де складати усі html шматочки темплейтів, якщо я маю оперувати не компонентом (типу меню юзера) а меню айтемом у випадку оновлення twinspark-ом якогось там шматка html? [доречі це дуже схоже на той самий підхід з jquery де ми оновлюемо цсс чи чайлд ноду. чи не стане це кошмаром?]
from twinspark-js.
Related Issues (10)
- Have You Seen HTMX? HOT 2
- twinspark та npm-registry HOT 2
- "View source" button in docs does not work after navigating back HOT 1
- як замінити store pattern? HOT 1
- twinspark.js.org domain HOT 3
- 'ts-req-selector="children ul"' doesn't activate children elements HOT 1
- Example provided does not make XHR call HOT 1
- Option to deactivate use of IndexedDB. HOT 1
- Best way to handler redirect after sumit form? HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from twinspark-js.