在按钮单击时在客户端加载html页面

时间:2014-12-26 17:41:51

标签: html5 gwt

我是GWT的新手。如何通过按钮点击在客户端加载不同的静态HTML页面。已阅读并且不希望进入RPC,框架,客户端软件包以及以下页面:

best way to externalize HTML in GWT apps?

如果客户端捆绑是我能得到的最接近的,我可以有一个非常简单的例子,假设我有8个HTML页面要在客户端加载,可以通过按钮点击导航吗?

根据我的理解,这些单独的页面可能由UIBinders创建 - 如果我错了,请纠正我。

我只有以下代码才能在点击时显示另一个页面,这不是我想要的方式。它也给出了403错误:

button.addClickHandler (new ClickHandler(){
            @Override
            public void onClick (ClickEvent event){
                //Window.alert("Hello again");

                String winUrl = GWT.getModuleBaseURL();
                String winName = "Testing Window";

                openNewWindow (winName, winUrl);
            }
        });

2 个答案:

答案 0 :(得分:0)

我想这很简单:

Window.Location.assign(" MenuPage.html&#34);

答案 1 :(得分:0)

如果您不关心浏览器客户端页面的状态,那么类似:

Window.Location.replace(newUrl);

然后,您在newUrl中指向的html页面可能会加载或不加载与当前页面相同的java脚本。

如果您确实关心保持浏览器客户端页面的状态,并且只是想避免在初始加载时加载静态页面(默认情况下所有页面都会立即加载),那么code splitting就是您的朋友。原则是围绕定义代码拆分的异步调用包装显示新页面的代码,如:

GWT.runAsync(new RunAsyncCallback()
{
  @Override
  public void onFailure(Throwable reason)
  {
    Window.alert("Error in fetching the split javascript for page ...");
  }
  @Override
  public void onSuccess()
  {
    // Code to setup and show your new static page instead of the current page.
    // This code will be in a javascript file that won't be loaded at initial page load.
    // You must make sure though that the below code does not use/include common code.
    RootPanel.get().clear();
    RootPanel.get().add(newWidget);
  }
});