2013-04-03 15 views
0

我們有一個基於GWT的胖客戶端,比如web應用程序。該應用程序相當大,並有一些初始加載時間。一種用外部鏈接控制網頁而不重新加載的方法

我們希望向我們的應用程序電子郵件用戶發送帶有href鏈接的用戶,這些鏈接可以在我們的應用程序中打開特定的資源。那麼這當然有點擊鏈接再次打開應用程序的效果,重新加載它,我們想避免。理想情況下,我們希望href鏈接能夠以某種方式向我們的應用程序/網頁發出信號,以便我們可以在應用程序中找到事件並對其做出反應。

任何想法,我們應該如何處理這或甚至可能?

謝謝!

回答

0

目前似乎並沒有被任何優雅的解決方案從一個鏈接發送一個事件,現有的瀏覽器窗口。我目前遇到的幾個解決方案:

a)爲應用程序實現cookie輪詢解決方案,以查詢cookie是否存在或發生更改。鏈接指向我們的服務器,它只是設置cookie,這種方式通知正在運行的應用程序的事件。一些棘手的處理應該通過返回的來自服務器的臨時頁面之間的某種雙向協議來實現,以處理應用程序尚未運行的情況。

b)與解決方案a)相同的方法,但使用html5本地存儲進行通信。這種方式不需要輪詢器,因爲本地存儲在內容更改時觸發事件。這將是一個可能的解決方案,但不適合我,因爲我們必須支持舊版瀏覽器而不支持本地存儲。

c)用於將事件從服務器傳遞到客戶端的長輪詢ajax或Web套接字。一個解決方案,但似乎矯枉過正,可能需要一個現代的瀏覽器至少web套接字。

0

您需要使用GWT Hyperlink這是一個用作「內部」超鏈接的小部件。也就是說,它是指向正在運行的應用程序的另一個狀態的鏈接。點擊後,它會使用History.newItem(java.lang.String)創建一個新的歷史記錄框架,但不用重新加載頁面。

如果您尚未使用它,信息是這裏GWT's History mechanism

+0

GWT超鏈接是不是應該在應用程序本身中使用的小部件?我的問題是關於外部簡單鏈接應該能夠在現有瀏覽器窗口中命令運行的GWT應用程序/網頁的情況。 – markok 2013-04-04 05:08:49

+0

是的,抱歉,我認爲電子郵件將從應用程序中讀取... – user1258245 2013-04-04 07:04:10

相關問題