首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >加载GWT页面,然后显示window.alert

加载GWT页面,然后显示window.alert
EN

Stack Overflow用户
提问于 2016-05-13 14:42:05
回答 1查看 475关注 0票数 0

所以我在我的搜索中发现的一切都是如何在JS中实现的,我知道如何去做。我希望找到一个GWT机制来实现这一点。

我想要做的是在加载后在页面上放置一个警报window.alert(app.getStatus()) (并不难)。问题是,使用我当前的代码,警报会在页面完成加载之前弹出,这样用户就可以看到一个部分加载的白色页面,它在单击Ok按钮之前什么也不做。

这就是我现在所拥有的

代码语言:javascript
复制
public class DisplayApplicationViewImpl extends Composite 
    implements DisplayApplicationView {

    public DisplayApplicationViewImpl() {
        /*...
        Lot of logic that is not helpful
        ...*/

        initWidget(uiBinder.createAndBindUi(this));
        Window.alert("Test");
    }
}

我也尝试了下面的内容(虽然我不认为这是正确的使用),但这些只会在打开应用程序时触发一次,然后将不会对任何其他应用程序开火,除非页面被刷新并且仍然有“问题”。

代码语言:javascript
复制
Scheduler.get().scheduleFinally(new RepeatingCommand(){
    @Override
    public boolean execute() {
        Window.alert("Test");
        return false;
    }   
});

这个比较接近,因为它允许加载gif,但是我不知道为什么,实际上这个功能并没有改变,仅仅是这段代码。

代码语言:javascript
复制
Scheduler.get().scheduleDeferred(new ScheduledCommand(){
    @Override
    public void execute() {
        Window.alert("Test");
    }   
});

我研究过“Window.onload()”,但这似乎不是我所选择的

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-13 15:06:56

将Window.alert()方法放在initWidget之后,这意味着在显示消息时构建了所有UI。如果希望确保浏览器已完成UI的呈现,则可以将Window.alert()包装在scheduleDeferred (I explain it here)中。

此外,加载数据或图像可能会导致延迟。在加载数据的情况下,可以将Window.alert()放在数据加载方法的回调中。对于图像,您可以使用GWT,它实现了HasLoadHandlers接口,但在大多数情况下,使用scheduleDeferred就足够了。

编辑:

每个视图只构造一次,因此消息只显示一次。这是正确的行为。如果要多次显示消息,则演示者/活动应该显示此消息或告诉视图显示该消息。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37212968

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档