加载 GWT 页面然后显示 window.alert
Load GWT page then show window.alert
所以我在搜索中找到的所有内容都是如何在我知道如何做的 JS 中完成。我希望找到的是一个 GWT 机制来做到这一点。
我想要做的是在页面加载后(不是很难)在页面上放置一个警告 window.alert(app.getStatus())
。问题是,在我当前的代码中,警告会在页面完成加载之前弹出,因此用户会看到一个部分加载的白页,在单击“确定”按钮之前,该页面什么都不做。
这是我目前拥有的
public class DisplayApplicationViewImpl extends Composite
implements DisplayApplicationView {
public DisplayApplicationViewImpl() {
/*...
Lot of logic that is not helpful
...*/
initWidget(uiBinder.createAndBindUi(this));
Window.alert("Test");
}
}
我也尝试过下面的方法(虽然我认为这不是正确的用法)但是这些只会在应用程序打开时触发一次,然后不会在任何其他应用程序上触发,除非页面被刷新并且仍有负载 "issue".
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()',但在我看来,这似乎不是一个选择。
您将 Window.alert() 方法放在 initWidget
之后,这意味着所有 UI 都已在显示此消息时构建。如果要确保浏览器已完成渲染 UI,可以将 Window.alert() 包装在 scheduleDeferred
(I explain it here).
中
此外,加载数据或图片可能会造成延迟。在加载数据的情况下,您可以将 Window.alert() 放在数据加载方法的回调中。对于图像,您可以使用 GWT Image 小部件,它实现了 HasLoadHandlers 接口,但在大多数情况下使用 scheduleDeferred
就足够了。
编辑:
每个视图只构建一次,所以消息只显示一次。这是正确的行为。如果您想多次显示该消息,您的 presenter/activity 应该显示此消息或告诉视图显示它。
所以我在搜索中找到的所有内容都是如何在我知道如何做的 JS 中完成。我希望找到的是一个 GWT 机制来做到这一点。
我想要做的是在页面加载后(不是很难)在页面上放置一个警告 window.alert(app.getStatus())
。问题是,在我当前的代码中,警告会在页面完成加载之前弹出,因此用户会看到一个部分加载的白页,在单击“确定”按钮之前,该页面什么都不做。
这是我目前拥有的
public class DisplayApplicationViewImpl extends Composite
implements DisplayApplicationView {
public DisplayApplicationViewImpl() {
/*...
Lot of logic that is not helpful
...*/
initWidget(uiBinder.createAndBindUi(this));
Window.alert("Test");
}
}
我也尝试过下面的方法(虽然我认为这不是正确的用法)但是这些只会在应用程序打开时触发一次,然后不会在任何其他应用程序上触发,除非页面被刷新并且仍有负载 "issue".
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()',但在我看来,这似乎不是一个选择。
您将 Window.alert() 方法放在 initWidget
之后,这意味着所有 UI 都已在显示此消息时构建。如果要确保浏览器已完成渲染 UI,可以将 Window.alert() 包装在 scheduleDeferred
(I explain it here).
此外,加载数据或图片可能会造成延迟。在加载数据的情况下,您可以将 Window.alert() 放在数据加载方法的回调中。对于图像,您可以使用 GWT Image 小部件,它实现了 HasLoadHandlers 接口,但在大多数情况下使用 scheduleDeferred
就足够了。
编辑:
每个视图只构建一次,所以消息只显示一次。这是正确的行为。如果您想多次显示该消息,您的 presenter/activity 应该显示此消息或告诉视图显示它。