GWT 中的历史和地点之间有什么区别/关系?

inj*_*joy 2 ajax gwt

根据我的观察,历史记录用于具有多个 AJAX 交互的单个 html 页面。它只是将每个状态分配给一个特定的标记来区分(或标记)它们。对于 Places,它用于不同的 html 页面。它将每个 html 页面分配给一个字符串标记。

他们之间有什么关系吗?我理解正确吗?

Igo*_*mer 5

官方文档所述

地点是表示 UI 特定状态的 Java 对象。通过为每个 Place 定义 PlaceTokenizer,Place 可以与 URL 历史令牌相互转换(参见 GWT 的 History 机制),GWT 的 PlaceHistoryHandler 会自动更新与您的应用程序中的每个 Place 相对应的浏览器 URL。

因此,您可以将 Places 和 Activities 视为高于 History 的更高级别。例如,您可以通过将历史标记更改为History.newItem("token"). 但是你可以用PlaceController做同样的:placeController.goTo(new TokenPlace())TokenPlace与历史令牌显式关联,在到达此位置时实例化token了一个Activity类,等等。在幕后,History.newItem("token")仍将被调用,但您不必担心手动管理历史令牌。作为奖励,您的应用程序可能会减少耦合,因为现在Activity1不需要知道任何相关信息Activity2-Activity1只需触发移动到一个新的地方。它不关心它与哪个活动相关联。