簡體   English   中英

單擊按鈕在客戶端加載html頁面

[英]load html pages on client side on button click

我是GWT的新手。 如何通過單擊按鈕在客戶端加載不同的靜態HTML頁面。 已閱讀並且不希望進入RPC,框架,客戶端捆綁包和以下頁面:

在GWT應用程序中外部化HTML的最佳方法?

如果客戶端捆綁軟件是我能獲得的最接近的捆綁軟件,請問我有一個非常簡單的示例,假設我要在客戶端加載4個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);
            }
        });

我想這很簡單:

Window.Location.assign(“ MenuPage.html”);

如果您不關心瀏覽器客戶端頁面的狀態,則類似於:

Window.Location.replace(newUrl);

然后,您在newUrl指向的html頁面可能加載也可能不加載與當前頁面相同的java腳本。

如果您確實希望保留瀏覽器客戶端頁面的狀態,並且只想避免在初始加載時加載靜態頁面(默認情況下,所有頁面都會立即加載),那么代碼拆分就是您的朋友。 原理是將顯示新頁面的代碼包裝在定義代碼拆分的異步調用周圍,例如:

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);
  }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM