根据我的观察,历史记录用于具有多个AJAX交互的单个html页面。它只是将每个状态分配给特定的令牌以区分(或标记)它们。而对于Places,它用于不同的html页面。它将每个html页面分配给字符串标记。
他们之间有什么关系吗?我理解正确吗?
答案 0 :(得分:4)
一个地方是表示UI特定状态的Java对象。通过为每个场所定义PlaceTokenizer,可以将场所转换为URL历史令牌(请参阅GWT的历史记录机制),并且GWT的PlaceHistoryHandler会自动更新与应用中每个场所对应的浏览器URL。
因此,您可以将地方和活动视为比历史更高级别。例如,您可以使用History.newItem("token")
更改历史记录标记,从而转到应用程序中的新“位置”。但您可以使用PlaceController
执行相同操作:placeController.goTo(new TokenPlace())
。 TokenPlace
与历史记录token
显式关联,在到达此地点时实例化Activity
类等。在引擎盖下,History.newItem("token")
仍然会被调用,但是您不必担心手动管理历史令牌。作为奖励,您的应用程序可能会变得更少耦合,因为现在Activity1
无需了解Activity2
- Activity1
只需触发移动到新地点。它并不关心与之相关的活动。