GWT-在使用位置/活动/映射器时,我应该在哪里使用代码拆分?

GWT-在使用位置/活动/映射器时,我应该在哪里使用代码拆分?,gwt,asynchronous,gwt-mvp,Gwt,Asynchronous,Gwt Mvp,“核心”是指加载的应用程序的初始部分 为了将url绑定到位置,GWT使用PlaceTokenizer。当从url加载应用程序时,它调用方法P getPlace(String-token)来检索要调用的位置的新实例 由于代码拆分的异步性质,我无法在此方法中在runAsync中创建位置。因此,我必须将应用程序的所有位置都放在核心位置 要将地点链接到活动,GWT调用activity getActivity(Place-Place)(从com.google.GWT.activity.shared.A

“核心”是指加载的应用程序的初始部分

  • 为了将url绑定到位置,GWT使用
    PlaceTokenizer

    。当从url加载应用程序时,它调用方法
    P getPlace(String-token)
    来检索要调用的位置的新实例

    由于代码拆分的异步性质,我无法在此方法中在
    runAsync
    中创建位置。因此,我必须将应用程序的所有位置都放在核心位置

  • 要将地点链接到活动,GWT调用
    activity getActivity(Place-Place)
    (从
    com.google.GWT.activity.shared.ActivityMapper
    )来检索活动的新实例

    再一次,我必须把所有的活动放在核心位置

下面是我想尝试的:编写一个定制的
com.google.gwt.place.shared.Delegate

  • PlaceChangeRequestEvent
    上绑定自身。如果与requestedPlace对应的AppPiece未加载,它将调用
    event.setWarning(需要加载模块)
  • confirm(String message)
    方法中,当消息等于
    需要加载模块时,始终返回false(这样用户就不会感到麻烦),并通过
    RunAsync
    加载模块
  • 加载模块后,调用
    goTo(requestedPlace)
我的应用程序的每个AppPiece都包含一组活动和相应的视图。由于映射程序仅在触发
placechangeent
时调用,因此我可以通过
AppPiece.getSomeActivityInstance()
生成活动的新实例

我很确定这会奏效,但让我烦恼的是

  • 根据requestedPlace查找要加载的AppPiece将迫使我编写与映射程序非常相似的代码
  • 我想把我的位置放在相应的AppPiece中
  • 为此重写
    Delegate
    非常棘手,我正在寻找更好的解决方案

    • 您不必将所有活动都放在核心中(您称之为核心):当同步检索活动实例时,允许它异步启动。这是放置
      GWT.runAsync
      调用的地方

      看到和