添加javascript/Jquery&;Vaadin 7中的客户端代码

添加javascript/Jquery&;Vaadin 7中的客户端代码,java,javascript,jquery,integration,vaadin,Java,Javascript,Jquery,Integration,Vaadin,我有3个问题: Vaadin中的每个操作都会调用服务器。有没有办法避免每次操作都调用服务器?比如在客户端有一个用于多次使用的特定操作的代码?就像CSValidation插件一样 我想知道如何在vaadin7中添加Javascript/JQuery。在瓦丁6号似乎很容易。但是,我不能让它在瓦丁7号工作。我希望他们现在能让事情变得容易些。有人能给我举一些例子吗。如果是JQuery,它将对我帮助很大 也会 Javascript.getCurrent().execute(“”) 在代码中“执行javas

我有3个问题:

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

  • 我想知道如何在vaadin7中添加Javascript/JQuery。在瓦丁6号似乎很容易。但是,我不能让它在瓦丁7号工作。我希望他们现在能让事情变得容易些。有人能给我举一些例子吗。如果是JQuery,它将对我帮助很大

  • 也会

    Javascript.getCurrent().execute(“”)


  • 在代码中“执行javascript”或“添加指定脚本”。这能帮我解决第二个问题吗?

    我不是Vaadin框架的专家

    我可以告诉你,你的第三个问题是运行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

    我希望这将有助于

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

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

    2) 我想知道如何在vaadin7中添加Javascript/JQuery。这似乎很容易 在瓦丁6号。但是,我不能让它在瓦丁7号工作。我希望他们 现在就容易多了。谁能给我举几个例子吗 对此,。如果是JQuery,它将对我帮助很大

    这里有一个关于如何将jQuery与Vaadin 7集成的很好的教程:

    它主要是创建一个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()一书中所述

    JavaScript在当前正在执行的服务器请求之后执行 已处理的退货。(……)


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

    请有人回答此问题。.任何小提琴或代码都有助于回答。。如果可能,请提供..谢谢你Jonas。。我会核对你的答案。@Gugan我同意。但是你可以把这本书作为第一站。在那之后,这个系统实际上非常活跃。
    // Shorthand
    JavaScript.getCurrent().execute("alert('Hello')");