GWT历史记录令牌重写

时间:2010-03-01 10:41:06

标签: gwt url-rewriting token gwt-history

我想做历史记录令牌重写。不知道它的可能性与否。 例如如果我的应用程序URL为http://localhost:8080/myapp/#login,其中包含“登录”作为历史记录标记。是否可以重写像http://localhost:8080/myapp/user/login这样的网址。

或者是否可以从历史记录中删除“#”?

1 个答案:

答案 0 :(得分:8)

#令牌在网址中具有特殊含义。浏览器将#标记之前的所有内容解释为要加载的页面,并将#之后的所有内容解释为页面上的附加信息。这意味着如果在#令牌之后在URL中更改了某些内容,则不会重新加载网页,但会创建一个浏览器历史记录项。 GWT使用它来创建新的历史记录项,而不是重新加载页面。

如果您要将URL从#login重写为/user/login,您将指示浏览器重新加载页面,这意味着将重新加载整个GWT页面并重置所有状态信息。这可能不是你想要的。

所以简短的回答是,虽然技术上可行,但它会将行为从单页网站更改为多页网站,每次历史记录更改时都会重新加载,这可能不是您想要的。