2011-12-19 33 views
0

到目前爲止,我已經與我的GWT應用程序使用的是一個簡單的FI,像#login#welcome等 但是我要「重構」我在一個更具描述性方法的應用,我需要做這種方式:GWT片段Idenfiers

http://localhost:8080/main#login 
http://localhost:8080/main#search 
http://localhost:8080/profile#<username> 
http://localhost:8080/api 
etc. 

我可以用GWT做這個嗎?

回答

2

如果你想留在同一個GWT應用程序,你必須使用HTML5歷史API(pushStateonpopstate),而不是GWT的默認History(或DefaultHistorian)執行;這意味着您的應用只能在支持HTML5 History API的瀏覽器上工作(或者您必須提供後備功能)。
這對於GWT來說是可能的,但是如果你不知道如何去做和/或HTML5 History API的工作方式如何,它會花費你很多(時間)。

順便說一句,如果你曾經切換到HTML5歷史API,爲什麼要保留一些片段標識符?

另一種方法是,如米蘭說,分裂您的應用程序成較小的部分(/main/profile/api等)

+0

如何拆分我的應用程序? – xybrek 2011-12-19 12:28:16

+0

呃,有X個模塊,有X'EntryPoint's,而不是一個? – 2011-12-19 13:44:14

+0

我從來沒有試過這個,我用過的是GWT-Multipage。你如何實現這個?如果我製作多個EntryPoint類,我怎麼知道要加載哪一個? – xybrek 2011-12-19 18:50:38

1

是的,但/ main和/ profile將會是單獨的(html)頁面,所以您將爲每個頁面添加EntryPoint(加載/卸載GWT模塊)。那是你想要的嗎? Google的AdWords是一個示例(用GWT編寫),每個選項卡都是一個單獨的HTML頁面(/ dashboard /,/ cm/CampaignMgmt,...)。

+0

是的,這就是我想要的,怎麼辦加載/卸載GWT模塊BTW? – xybrek 2011-12-19 11:15:31

+0

實際上,我使用了GWT Multipage,並使用單獨的入口點,如果我有用戶模型(如經過身份驗證的用戶對象),使用單獨入口點時將不可用... – xybrek 2011-12-19 12:30:51

+0

您必須明顯重新加載會話。是的,GWT也需要一個會話。 – 2012-04-20 23:33:57