Добавить javascript / JQuery и клиентский код в Vaadin 7
У меня есть 3 вопроса:
каждое действие в Vaadin вызывает сервер. есть ли способ избежать вызовов на сервер для каждого действия? например, наличие кода на стороне клиента для определенных действий, которые используются много раз? Как в csvalidation дополнения.
Я хочу знать, как добавить Javascript/JQuery в Vaadin 7. Это кажется легким в Vaadin 6. Но я не мог заставить его работать в Vaadin 7. Я надеюсь, что они сделали бы это более легким сейчас. Может ли кто-нибудь показать мне несколько примеров относительно этого. Если это JQuery, это мне очень поможет.
-
, а также
Javascript.getCurrent().execute ("");
выполнить код JavaScript' или 'добавить указанный скрипт в код. Это поможет мне решить мой 2-й вопрос?
2 ответов
1)каждое действие в Vaadin вызывает сервер. Есть ли способ избежать вызовов на сервер для каждого действия? например, наличие кода на стороне клиента для определенных действий, которые используются много раз? Как в csvalidation дополнения.
Это зависит от кода на стороне клиента. Vaadin построен с моделью программирования на стороне сервера, но если вам нужно ограничить количество вызовов сервера, вам нужно сделать это самостоятельно. Vaadin 7 сделал это относительно проще включите сторонние библиотеки, как это было в Vaadin 6.
2) я хочу знать, как добавить Javascript/JQuery в Vaadin 7. Кажется легко в фреймворк Vaadin 6. Но я не мог заставить его работать в Vaadin 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" или "добавить указанный скрипт" в код.
следующий фрагмент кода будет выполнен, как указано в книге Vaadin 7 (https://vaadin.com/book/vaadin7/-/page/advanced.javascript.html)
// Shorthand
JavaScript.getCurrent().execute("alert('Hello')");
JavaScript выполняется после текущего запроса сервера обработанные возвраты. (...)
Я предлагаю вам взять хороший взгляд на книгу фреймворк Vaadin. Он содержит много важной информации, которая обычно помогает решить большинство проблем, которые возникают при работе с фреймворк Vaadin.
Я не эксперт в рамках Vaadin...
Я могу сказать вам, что ваш вопрос № 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, см. форуме
Он говорит, что вы можете вызвать jQuery напрямую, как это $wnd.JQuery
Я надеюсь, что это поможет...