在Vaadin 7中添加javascript/Jquery和客户端代码

Gug*_*gan 14 javascript java integration jquery vaadin

我有3个问题:

  1. Vaadin中的每个动作都会调用服务器.有没有办法避免每次操作调用服务器?比如在客户端有代码用于多次使用的特定操作?就像在CSValidation插件中一样.

  2. 我想知道如何在Vaadin 7中添加Javascript/JQuery.在Vaadin 6中看起来很容易.但是,我无法让它在Vaadin 7中运行.我希望他们现在能让它更容易.谁能告诉我一些关于此的例子.如果它是JQuery,它将帮助我很多.

  3. 而且也会

    .Javascript.getCurrent()执行( "");

'执行javascript'或'添加指定的脚本'到代码中.这有助于我解决第二个问题吗?

Jon*_*nas 16

1)Vaadin中的每一个动作都会调用服务器.有没有办法避免为每个操作调用服务器?比如在客户端有代码用于多次使用的特定操作?就像在CSValidation插件中一样.

这取决于客户端代码.Vaadin是使用服务器端编程模型构建的,但如果您需要限制服务器调用量,则需要自己完成.Vaadin 7使得包含第三方库变得相对容易,就像在Vaadin 6中一样.

2)我想知道如何在Vaadin 7中添加Javascript/JQuery.在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
}
Run Code Online (Sandbox Code Playgroud)

路径可以是URL或jQuery库的内部路径.

3)'执行javascript'或'添加指定的脚本'到代码中.

将执行以下代码段,如Book of Vaadin 7(https://vaadin.com/book/vaadin7/-/page/advanced.javascript.html)中所述

// Shorthand
JavaScript.getCurrent().execute("alert('Hello')");
Run Code Online (Sandbox Code Playgroud)

在当前处理的服务器请求返回后执行JavaScript.(......)

我建议你好好看看Vaadin书.它包含许多重要信息,通常有助于解决使用Vaadin时出现的大多数问题.