所以我在我的搜索中发现的一切都是如何在JS中实现的,我知道如何去做。我希望找到一个GWT机制来实现这一点。
我想要做的是在加载后在页面上放置一个警报window.alert(app.getStatus()) (并不难)。问题是,使用我当前的代码,警报会在页面完成加载之前弹出,这样用户就可以看到一个部分加载的白色页面,它在单击Ok按钮之前什么也不做。
这就是我现在所拥有的
public class DisplayApplicationViewImpl extends Composite
implements DisplayApplicationView {
public DisplayApplicationViewImpl() {
/*...
Lot of logic that is not helpful
...*/
initWidget(uiBinder.createAndBindUi(this));
Window.alert("Test");
}
}我也尝试了下面的内容(虽然我不认为这是正确的使用),但这些只会在打开应用程序时触发一次,然后将不会对任何其他应用程序开火,除非页面被刷新并且仍然有“问题”。
Scheduler.get().scheduleFinally(new RepeatingCommand(){
@Override
public boolean execute() {
Window.alert("Test");
return false;
}
});这个比较接近,因为它允许加载gif,但是我不知道为什么,实际上这个功能并没有改变,仅仅是这段代码。
Scheduler.get().scheduleDeferred(new ScheduledCommand(){
@Override
public void execute() {
Window.alert("Test");
}
});我研究过“Window.onload()”,但这似乎不是我所选择的
发布于 2016-05-13 15:06:56
将Window.alert()方法放在initWidget之后,这意味着在显示消息时构建了所有UI。如果希望确保浏览器已完成UI的呈现,则可以将Window.alert()包装在scheduleDeferred (I explain it here)中。
此外,加载数据或图像可能会导致延迟。在加载数据的情况下,可以将Window.alert()放在数据加载方法的回调中。对于图像,您可以使用GWT,它实现了HasLoadHandlers接口,但在大多数情况下,使用scheduleDeferred就足够了。
编辑:
每个视图只构造一次,因此消息只显示一次。这是正确的行为。如果要多次显示消息,则演示者/活动应该显示此消息或告诉视图显示该消息。
https://stackoverflow.com/questions/37212968
复制相似问题