Вопрос к спецам: Что лучше для «html-ui»-фреймворка: компоненты на дивах или на стандартах html?
Есть задумка: Портировать для (пока еще не выпущенного) gwt 2.0: компоненты flex4 (вместе с максимально возможным fxp1.0). Ну скажем в пакете com.google.gwt.user.client.ui.flex4.
Во-первых, скажем так, мне очень нравится сам fxg, да и сам flex4, к тому же существующий gwt-ui не дает мне полноценной свободы в быстрой реализации, хотя бы, 80% моих проектов. Все существующие библиотеки ну слишком сильно весят, да и тормозят не меньше. И семантика их мне совсем не нравится.
Требуется портировать 100% кроссбраузно, ессно (ну как это и рендерит сам flash-plugin).
Я неплохо верстаю (ну окромя остального), но никогда не занимался бенчмаркингом и вообще техническими аспектами рендеринга верстки, а в моей команде есть разногласия, посему есть несколько вопросов к комьюнити:
1. Что лучше использовать в custom-компоненте, использующем, предположем, логику checkbox или radiobox — дивы с соотвествуещей логикой или стандартные html-компонеты, применяя к ним css2-«3» и обрамляя дивами, в случае необходимости (ну для дальнейшей красоты, которая может отсутствовать в css)? Понятно, что [input type=«textbox»]/[textarea] необходимы впринципе для логики edit-компонентов, (хотя вроде уже многие браузеры поддерживают editable, но я с этим свойством не работал ни разу), но кнопку и пр. можно сделать несколькими путями, но непонятно, какие лучше, или уже действительно пофигу?
2. Что правильнее использовать, возможно большой кусок css, или небольшую добавку js? Т.е в gwt2 переписали layouts, ибо они на onResize неадекватно-тормозно реагировали, в итоге выбрали чистый css; где тут золотая середина для большинства клиентов? Вообщем, как правильнее всего выбирать баланс: css(2-«3»)-js/кроссбраузность (в плане минималистичности написанного кода, ибо gwt грузит разное под разные useragent, если надо), что сильнее бьет по производительности из технологий? Т.е если я говорю через js изменить ширину, изменится (в среднем по браузерам) рендер, а потом css-свойство, или сначала js поменяет стиль, а он потом рендер? Или вообще все иначе и не стоит на это счет запариваться, или есть какие-то аспекты?
3. Насколько широко стоит использовать семантику html? Т.е по сути можно ограничиться одними div-тегами, однако можно и в «нужной» семантике вместо «div со стилем» юзать span, li и пр. (и даже взять из html5, а если да, то в каком объеме)? Т.е как удобнее и правильнее будет конечному разработчику приложения на моих компонетах? Да и как для веба (клиенты+поисковики) будет лучше? И как это может отразиться на скорости рендеренга (если див+стиль, заместо стандарта), ну скажем с 1000 таких компонентов на странице?
Ну и ваши пожелания и предложения будут совсем не лишними.