0

PlaceHistoryHandler#DefaultHistorian的 GWT JavaDocs是模糊和循环的:

PlaceHistoryHandler.DefaultHistorian 的默认实现。

这并没有真正告诉我们它是什么,或者它做了什么!

然后我们有PlaceHistoryMapperActivityMapper对象。我的理解PlaceHistoryMapper' 的工作是将 URL 标记映射到Place,并将ActivityMapper这些Places 映射到Actvitity实现。

所以我问:如果这两个 Mapper 负责将 URL 令牌绑定到特定的Activity,那么DefaultHistorian在这一切中扮演什么角色?

4

1 回答 1

1

Javadoc 在阅读时很容易更正:DefaultHistorianHistorian.

要了解它们如何一起发挥作用,您首先必须了解地方可以在没有历史的情况下工作,也可以在没有活动的情况下工作。

所以,在中心位置是地方PlaceController保持一个当前的PlacegetWhere),它可以被修改goTo并将更改事件广播到一个EventBus。侦听器可以通过(其默认实现使用)要求用户确认(PlaceChangeRequestEvent's )。setMessageDelegateWindow.confirm

PlaceRequestChangeEvent建立在活动之上PlaceChangeEvent。您可以有多个ActivityManagers,每个都有其ActivityMapper和一个显示区域,为相同的给定/当前位置显示不同的活动。

而另一方面,基于goTo上述事件,就是历史PlaceHistoryHandler监听双方的事件并更新历史(通过Historian)或更新地点(通过PlaceController's goTo)。PlaceHistoryMapper两个世界之间的地图。Historian( )的默认实现DefaultHistorian使用com.google.gwt.user.client.Historycom.google.gwt.user.client.Window#addWindowClosingHandler。例如,您可以提供自己的使用 HTML5 的pushState实现onpopstate

看:

于 2012-10-22T16:35:02.660 回答