Подтвердить что ты не робот

Добавить код Javascript/Jquery & client стороне в Vaadin 7

У меня есть 3 вопроса:

  • Каждое действие в Vaadin делает звонок на сервер. есть ли способ избежать вызовов на сервер для каждого действия? например, иметь код на стороне клиента для определенных действий, которые используются много раз? Как в дополнении CSValidation.

  • Я хочу знать, как добавить Javascript/JQuery в Vaadin 7. В Vaadin это кажется легким. Но я не мог заставить его работать в Vaadin 7. Надеюсь, они облегчили бы его сейчас, Может ли кто-нибудь показать мне несколько примеров этого. Если это JQuery, это мне очень поможет.

  • И также будет

    Javascript.getCurrent() выполнить ( "");.

"выполнить javascript" или "добавить указанный script" в код. Это поможет мне решить мой второй вопрос?

4b9b3361

Ответ 1

1) Каждое действие в Vaadin делает звонок на сервер. Есть ли способ избежать вызовов на сервер для каждого действия? например, иметь код на стороне клиента для определенных действий, которые используются много раз? Как в дополнении CSValidation.

Это зависит от кода на стороне клиента. Vaadin построен с моделью программирования на стороне сервера, но если вам нужно ограничить количество серверных вызовов, вам нужно сделать это самостоятельно. Vaadin 7 упростил включение сторонних библиотек, как это было в Vaadin 6.

2) Я хочу знать, как добавить Javascript/JQuery в Vaadin 7. Кажется легко в Ваадине 6. Но я не мог заставить его работать в Ваадине 7. Надеюсь, они теперь стало бы легче. Может ли кто-нибудь показать мне несколько примеров в соответствии с этим. Если это JQuery, это мне очень поможет.

Здесь у вас есть хороший учебник о том, как интегрировать jQuery с Vaadin 7: http://java.dzone.com/articles/integrating-html-and-0

В основном речь идет о создании класса JavascriptExtension, это основная часть решения:

@JavaScript({ "https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.js" })
public class JavascriptJQueryExtension extends AbstractJavaScriptExtension {
    ... // Please see the link above for an example of implementation
}

Путь может быть либо URL-адресом, либо внутренним путем для библиотеки jQuery.

3) "выполнить javascript" или "добавить указанный script" в код.

Следующий фрагмент кода будет выполнен, как указано в Книге Ваадин 7 (https://vaadin.com/book/vaadin7/-/page/advanced.javascript.html)

// Shorthand
JavaScript.getCurrent().execute("alert('Hello')");

JavaScript выполняется после запроса сервера, который в настоящее время обработанные возвраты. (...)

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

Ответ 2

Я не являюсь экспертом в Vaadin Framework...

Я могу сказать, что ваш вопрос № 3 заключается в том, чтобы запускать команды JavaScript через это.

Вы также можете запустить команду jQuery через это.

Но для этого у вас должен быть jQuery включен на странице.

для вопроса 1: я могу сказать, что это возможно, так как у Vaadin есть функциональность, которая переопределяет функцию.

JavaScript.getCurrent().addFunction("com.example.foo.myfunc",
                                    new JavaScriptFunction() {
    @Override
    public void call(JSONArray arguments) throws JSONException {
        Notification.show("Received call");
    }
});

Link link = new Link("Send Message", new ExternalResource(
        "javascript:com.example.foo.myfunc()"));

Теперь, в отсутствие поддерживающего кода, вы должны определить фактическую функцию плагина, которая делает вызов на сервер при каждом действии. Убедитесь, что вы отменили функцию. Вам потребуется эта функция в какой-то момент.. поэтому не переопределяйте требуемую функцию....

Вопрос 2,

да jQuery доступен с vaadin, см. forum

он говорит, что вы можете напрямую вызвать jQuery следующим образом: $wnd.JQuery

Надеюсь, это поможет...