LINUX.ORG.RU

Компоненты, как в Qt, но для веба и в браузере

 


0

3

Хочу легкий фреймворк, который бы позволял создавать компоненты, которые являются классами, причем отображение которых задавалось бы путем создания xml-layout-ов, как в Qt или Android:

<UberKomponente>
    <UnterKomponente1 text="Unterkomponent text" />
    <UnterKomponente2 param1="param1" />
</UberKomponente>
, а логика компонентов была бы представлена классами с наследованием (один компонент - один класс).

Deleted

Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от visual

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

Deleted
()
Ответ на: комментарий от visual

Да ладно, как будто обычные веб 2.0 интерфейсы с динамикой на jquery сильно тормозят. Есть, например, React от фейсбука, который в чем-то похож на то, что нужно, но там нет наследования классов.

Deleted
()

Нету такого. Есть AngularJS, но далекий от твоих пожеланий. А можно написать DSL для jQuery. Только это будет совсем не «легкий фреймворк». То, что ты хочешь (я тоже хочу) можно реализовать только в контексте браузера. Любые другие решения будет обречены на провал, т.к. получишь дикие тормоза, рассинхронизацию прорисовки элементов и элементов управления (прокрутка).

gh0stwizard ★★★★★
()
Ответ на: комментарий от Deleted

Это значит, надо переписывать движки браузеров. Рано или поздно так и произойдет. Либо webkit станет новым ЯП, либо придумают для этого замену. Сейчас уже index.html можно считать лишь загрузчиком js-либ, которые делают всю работу. Дальше его можно выпилить и работать с высокопроизводительным js. Ну раз я про это вспомнил, как пример, asm.js.

gh0stwizard ★★★★★
()

xml-layout-ов

Есть такой, HTML или как-то так.

И логика там ты не поверишь, классами.

Kalashnikov ★★★
()
Ответ на: комментарий от stevejobs

Q. Why not NaCl or PNaCl instead? Are you just being stubborn about JavaScript?

A. The principal benefit of asm.js over whole new technologies like NaCl and PNaCl is that it works today: existing JavaScript engines already optimize this style of code quite well. This means that developers can ship asm.js today and it'll simply get faster over time. Another important benefit is that it's far simpler to implement, requiring very little additional machinery on top of existing JavaScript engines and no API compatibility layer.

http://asmjs.org/faq.html

И их эталонные, в плане дизайне, слайды: http://kripken.github.com/mloc_emscripten_talk

gh0stwizard ★★★★★
()
Последнее исправление: gh0stwizard (всего исправлений: 1)

Web components. Доступен polyfill в рамках проекта polymer. Но он пока что далек от стабильности.

Поэтому сейчас для этого использую директивы angular'а. Но для твоего примера директивы — это оверкилл. Можно просто написать на html(в slim):

.uber-komponente
  p Unterkomponent text
  .unter-komponente2 param1="param1"

Если покажешь код этих компонентов на Qt(чтобы я приблизительно понял, что они должны делать), тогда постараюсь привести аналогию с использованием директив angular'а. Только желательно с какими-нибудь пояснениями — а то я с Qt не знаком.

Anatolik ★★
()
Ответ на: комментарий от Anatolik

Я хочу сделать, например, следующее: n инпутов с подписямя. Но у одного из них есть валидация, другой предоставляет выпадающие подсказки, остальные - обыкновенные. Так бы я создал для них родительский класс, реализующий базовый функционал, а для особенных создал кдассы-потомки, в которых навесил бы обработчики нужных событий. При этом, все бы обладали единым интерфейсом в плане взаимодействия с ними. Со slim знаком, да, неплохая штука, но в отрыве от сервера на руби - просто сахар.

Deleted
()
Ответ на: комментарий от gh0stwizard

прочитал, это офигенно. Хочу писать на С++ в браузере уже сейчас :#

stevejobs ★★★★☆
()
Ответ на: комментарий от Deleted

а почему ты так не любишь сервер? Всё равно сервер придется делать, хотя бы чтобы БД иметь. А серверные технологии похожие есть, на Яве, например, есть Wicket.

stevejobs ★★★★☆
()
Ответ на: комментарий от Deleted

Так бы я создал для них родительский класс, реализующий базовый функционал

Какой именно базовый функционал, к примеру? Уточняю, потому что _самый_ базовый функционал уже реализован непосредственно в html.

input.with-validation pattern="alpha|beta|gamma|delta"
input.with-autocomplete list="alphabet"
input.common

datalist#alphabet
  option value="alpha"
  option value="beta"
  option value="gamma"
  option value="delta"

И css(в sass):

input:invalid
  border: 1px solid red

input:valid
  border: 1px solid green

Со slim знаком, да, неплохая штука, но в отрыве от сервера на руби - просто сахар.

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

Anatolik ★★
()

Если нужен GUI в веб приложениях - vaadin. Но для сайтов не рекомендуется.

tlx ★★★★★
()

а ext.js не пойдет?
правда он далеко не легкий и не легко расширяемый

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.