GWT片段标识符

GWT片段标识符,gwt,Gwt,到目前为止,我在gwt应用程序中使用的是一个简单的FI,如#login,#welcome等。 然而,我想以更具描述性的方式“重构”我的应用程序,我需要这样做: http://localhost:8080/main#login http://localhost:8080/main#search http://localhost:8080/profile#<username> http://localhost:8080/api etc. http://localhost:8080/ma

到目前为止,我在gwt应用程序中使用的是一个简单的FI,如
#login
#welcome
等。 然而,我想以更具描述性的方式“重构”我的应用程序,我需要这样做:

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

我可以用GWT做这个吗

是的,但是/main和/profile将是单独的(html)页面,因此每个页面都有入口点(加载/卸载GWT模块)。那是你想要的吗?谷歌的AdWords就是一个例子(用GWT编写),每个选项卡都是一个单独的HTML页面(/dashboard/,/cm/CampaignMgmt,…)

是的,但是/main和/profile将是单独的(html)页面,因此每个页面都有入口点(加载/卸载GWT模块)。那是你想要的吗?谷歌的AdWords就是一个例子(用GWT编写),每个选项卡都是一个单独的HTML页面(/dashboard/,/cm/CampaignMgmt,…)

如果你想保持在同一个GWT应用程序上,你必须使用HTML5历史API(
pushState
onpopstate
),而不是GWT的默认
History
(或
DefaultHistorian
)实现;这意味着您的应用程序只能与支持HTML5历史API的浏览器一起使用(否则您必须提供一个后备版本)。
这在GWT中是可能的,但是如果您不知道如何做和/或HTML5历史API是如何工作的,那么这将花费您很多时间

顺便说一句,如果您曾经切换到HTML5历史API,为什么要保留一些片段标识符


另一种选择是,正如milan所说,将你的应用程序分成更小的部分(
/main
/profile
/api
,等等)

如果你想保持在同一个GWT应用程序上,你必须使用HTML5历史api(
pushState
onpopstate
),而不是GWT默认的
History
(或
DefaultHistorian
)实现;这意味着您的应用程序只能与支持HTML5历史API的浏览器一起工作(否则您将不得不提供回退)。
这在GWT中是可能的,但是如果您不知道如何做和/或HTML5历史API是如何工作的,那么这将花费您很多时间

顺便说一句,如果您曾经切换到HTML5历史API,为什么要保留一些片段标识符


另一种选择是,正如milan所说,将你的应用程序分成更小的部分(
/main
/profile
/api
,等等)

是的,这就是我想要的,如何加载/卸载GWT模块顺便说一句?实际上我使用了GWT多页,如果我有一个用户模型(比如经过身份验证的用户对象),则使用单独的入口点,当使用单独的入口点时,它将不可用…显然,您必须重新加载会话。是的,GWT也需要一个会话。是的,这就是我想要的,如何加载/卸载GWT模块顺便说一句?事实上,我使用了GWT多页,并且使用单独的入口点,如果我有一个用户模型(如已验证的用户对象),当使用单独的入口点时,它将不可用…显然,您必须重新加载会话。是的,GWT也需要一个会话。呃,有X个模块,带有X
EntryPoint
s,而不是一个?我从未尝试过这一点,我使用的是GWT多页。您如何实现这一点?如果我创建了多个入口点类,我怎么知道要加载哪一个?将它们视为完全不同的应用程序(它们是).单独编译,产生不同的输出。我根据Thomas Broyer的建议和骨架写了一篇博文:呃,有X个模块,带有X
EntryPoint
s,而不是一个?我从来没有尝试过这个,我使用的是GWT Multipage。你如何实现它?如果我创建了多个EntryPoint类,我如何知道哪个是to加载?将它们视为完全不同的应用程序(它们是独立的)。单独编译,产生不同的输出。我根据Thomas Broyer的建议和骨架在以下方面写了一篇博文: