2012-08-23 48 views
0

我正在GWT項目中工作。 我需要在我的項目中每5分鐘自動刷新一次屏幕。GWT屏幕的自動刷新

有人可以幫我嗎?

+0

? –

+0

我想自動刷新整個頁面 – Anand

回答

3
public class TimerExample implements EntryPoint, ClickListener { 

    public void onModuleLoad() { 
    Button b = new Button("Click and wait 5 minutes"); 
    b.addClickListener(this); 

    RootPanel.get().add(b); 
    } 

    public void onClick(Widget sender) { 
    Timer t = new Timer() { 
     public void run() { 
     reloadAll(); 
     } 
    }; 

    // Schedule the timer to run once in 5 minutes. 
    t.schedule(5*1000*60); 
    } 

    private void reloadAll() { 
    Window.Location.reload(); 
    } 
} 
+0

我在我的應用程序中有8-9個屏幕,我只想要在一個屏幕上的自動刷新功能不是所有的..以上的例子似乎刷新所有的屏幕..我知道如果我知道我的假設錯了 – Anand

+2

上面的代碼刷新了窗口的整個內容。如果您只想刷新屏幕的某個部分,請將reloadAll()函數替換爲重新創建該部分視圖的代碼(如果需要,可以使用某些Ajax調用從服務器重新獲取數據)。 –

1

如果使用GWT從該Activies and Places框架,你可以使用活動映射器與「GOTO(samePlace)」的方法來輕鬆處理你的用例。它是MVP設計/模式的一部分。

+0

是的,我正在使用我的應用中的活動和地點。 goTo將導航到其他屏幕。我想自動刷新頁面。 – Anand

+0

Anand,活動/地點或mvp4g歷史記錄是最合適的方式。我相信你可以安排一個調用事件。 –

+0

@BlessedGeek是對的。最好有他的解決方案,例如在您的演示者中,好像它只與該演示者的觀點相關。有時,我使用地點/活動來刷新視圖的狀態。但是,我的頁面流動必須是正常的。 (我可能會做一些錯誤的事情,我希望不會!) – elkaonline

0

刷新每300秒(5分鐘):

<meta http-equiv="refresh" content="300"> 

將您的GWT HTML頁面託管的頭元素下這個元標記。

如果您使用JSP,而不是一個HTML文件作爲GWT託管文件,你可以這樣做

<% 
    String refreshInterval = request.getParameter("refreshInterval"); 
%> 
<head> 
    <meta http-equiv="refresh" content="<%=refreshInterval%>"> 
</head> 
要自動刷新整個頁面,或只是其中的一部分
+0

但在gwt託管頁面中放置上面的元標記將每隔5分鐘刷新整個應用程序..我想刷新我的應用程序中的特定頁面 – Anand