Кирилл Данилов (donz_ru) wrote,
Кирилл Данилов
donz_ru

Category:

Основные недостатки ZKoss

Решил упорядочить, чтобы не писать по новой, когда снова спросят.

1)Фреймворк заточен на то, чтобы абсолютно любое действие пользователя летело на сервер, где и обрабатывалось бы. Банальный дизейбл/енейбл элементов в зависимости от состояния чекбокса очень трудно и через ж... сделать яваскриптом. При этом приходится использовать конструкции action=" onchange: setSomeFields( \#{self}, \#{idTextBox} ) ". Если нужно отслеживать, что пользователь вводит в инпуте, то событие по вводу нового символа стучится на сервер.
2)Парсинг ZK превращает страницу в полный п. Идентификаторы контролов не сохраняются. Так что для работы с ними из ява скрипта надо писать что-то вроде document.getElementById( idTextBox ).childNodes[0].childNodes[0], где idTextBox - хитрым способом переданный в яваскрипт параметр.
3)Фреймворк очень располагает программистов к захреначиванию ява-кода в в страницы. Одна из страничек в проекте содержала четыре разных языка: jsp, javascript, java и zul (птичий язык ZKoss'а)
4)Для некоторых банальных вещей не сделана поддержка динамических параметров (под динамическими подразумеваю параметры, которые могут обновляться через AJAX-запросы)
5)Крайне хреновая документация, размазанная по нескольким Javadoc, туториалу, small talks, developer's guide, developer's reference и форуму. Причем в своей статье, как делать то или иное, могут запросто дать ссылку на тему в форуме, где это обсуждалось, и даже не скопировать в статью саму суть.
6)Свой птичий язык ZUL, который по идее должен был заменить JSP, но не имеет банальных тегов if, которые бы не были завязаны на контроле. Причем если для конкретного контрола можно задать условие, то оно не может быть вычисляемым и динамическим (насчет динамики, правда, не уверен). То есть банальное if="${!someBoolField}" не прокатит. Надо заводить отдельное поле notSomeBoolField и писать if="${notSomeBoolField}". Возможности сравнить значение поля с числом, соответственно, нет.
7)Возможно этот пункт относится ко всем фреймворкам с сохранением состояния. Но конкретно с ZK была проблема, что делать, если пользователь открывает ссылки в новых окнах/закладках? Состояние хранится для конкретной страницы. Можно увеличить количество хранимых состояний страниц, но что делать, если пользователь откроет N+1 страницу?
8)Не совсем явная интеграция со Spring и JSP.

Если знаете, что какой-то пункт ошибочный, то, плз, пишите. Не стесняйтесь.
Tags: it, java, zkoss
Subscribe

  • Новость-молния из Дахаба!

    У съема квартиры в Дахабе есть и минусы - сижу и жду, когда починят участок говнопровода между моим и нижним этажом. Зато наконец появилось время на…

  • Пересмотр приоритетов в логистике

    В рамках начала подведения итогов года. У меня с ковидом нормально так изменилось отношение к удобству в транспорте. Раньше на…

  • Мотивация выучить иностранный язык

    Тут на одном форуме сделали анализ лексикона пользователей. Мой словарный запас по итогам последних 420 комментариев около пяти тысяч слов. Так как…

  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 6 comments