Gar*_*gos 4 gwt asynchronous gwt-mvp
"core"指的是加载的应用程序的初始部分.
为了将url绑定到地方,GWT使用PlaceTokenizer<P extends Place>.从url加载应用程序时,它调用方法P getPlace(String token)来检索要调用的场所的新实例.
由于代码拆分的异步性质,我无法runAsync在此方法中创建一个位置.所以我必须把我的应用程序的所有位置放在核心.
为了将场所链接到活动,GWT调用Activity getActivity(Place place)(from com.google.gwt.activity.shared.ActivityMapper)来检索活动的新实例.
再次,我必须把我所有的活动放在核心.
这是我想尝试什么:编写一个自定义com.google.gwt.place.shared.Delegate的是
PlaceChangeRequestEvent.如果未加载与requestedPlace对应的AppPiece,则调用event.setWarning(NEED_TO_LOAD_MODULE)confirm(String message)方法中,当消息等于(因此它不打扰用户)时总是返回false NEED_TO_LOAD_MODULE,并通过加载模块RunAsync. goTo(requestedPlace)我的应用程序的每个AppPiece包含一堆活动和相应的视图.由于映射器仅在PlaceChangeEvent被触发时被调用,因此我可以通过生成我的活动的新实例AppPiece.getSomeActivityInstance().
我很确定这会起作用,但让我困扰的是那个
Delegate为此目的的压倒是棘手的,我正在寻找更好的解决方案您不必将所有活动放在核心中(就像您所说的那样):在同步检索Activity实例时,允许它以异步方式启动.这是你GWT.runAsync打电话的地方.
请参阅http://code.google.com/p/google-web-toolkit/issues/detail?id=5129和https://groups.google.com/d/topic/google-web-toolkit/8_P_d4aT-0E /讨论
| 归档时间: |
|
| 查看次数: |
1235 次 |
| 最近记录: |