PlaceHistoryHandler#DefaultHistorian的GWT JavaDocs模糊且循环:
PlaceHistoryHandler.DefaultHistorian的默认实现。
这并没有真正告诉我们它是什么,或它做了什么!
然后我们有PlaceHistoryMapper和ActivityMapper个对象。我的理解是PlaceHistoryMapper
的工作是将网址标记映射到Place
,而ActivityMapper
将Place
映射到Actvitity
1}}实现。
所以我问:如果这两个Mappers负责将URL令牌绑定到特定的Activity
,那么DefaultHistorian
在所有这些中扮演什么角色?
答案 0 :(得分:1)
Javadoc在阅读时很容易纠正:DefaultHistorian
是Historian
的默认实现。
要了解它们如何一起玩,首先必须了解地方可以在没有历史的情况下工作,也没有活动。
因此,在中心位置地方:PlaceController
保留当前Place
(getWhere
),可由goTo
修改并广播将事件更改为EventBus
。听众可以要求用户确认(PlaceChangeRequestEvent
的{{1}})到Delegate
(其默认实施使用setMessage
)。
建立在Window.confirm
和PlaceRequestChangeEvent
之上的是活动。您可以有几个PlaceChangeEvent
个,每个ActivityManager
和显示区域,每个显示相同的给定/当前位置的不同活动。
另一方面,基于ActivityMapper
,上述事件是历史。 goTo
听取双方的事件,更新历史记录(通过PlaceHistoryHandler
)或更新地点(通过Historian
的{{1}} )。两个世界之间的PlaceController
地图。 goTo
(PlaceHistoryMapper
)的默认实施使用Historian
和DefaultHistorian
。例如,您可以提供uses HTML5's pushState
and onpopstate
自己的实现。
请参阅: