2

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

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

4

1 回答 1

8

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

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

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

于 2010-03-01T11:41:45.547 回答