我想做历史记录令牌重写。不知道它的可能性与否。 例如如果我的应用程序URL为http://localhost:8080/myapp/#login,其中包含“登录”作为历史记录标记。是否可以重写像http://localhost:8080/myapp/user/login这样的网址。
或者是否可以从历史记录中删除“#”?
答案 0 :(得分:8)
#
令牌在网址中具有特殊含义。浏览器将#
标记之前的所有内容解释为要加载的页面,并将#
之后的所有内容解释为页面上的附加信息。这意味着如果在#
令牌之后在URL中更改了某些内容,则不会重新加载网页,但会创建一个浏览器历史记录项。 GWT使用它来创建新的历史记录项,而不是重新加载页面。
如果您要将URL从#login
重写为/user/login
,您将指示浏览器重新加载页面,这意味着将重新加载整个GWT页面并重置所有状态信息。这可能不是你想要的。
所以简短的回答是,虽然技术上可行,但它会将行为从单页网站更改为多页网站,每次历史记录更改时都会重新加载,这可能不是您想要的。