gpt4 book ai didi

gwt - 找出 GWT 模块何时加载

转载 作者:行者123 更新时间:2023-12-04 17:05:01 30 4
gpt4 key购买 nike

我以以下方式将 GWT 方法导出到 native javascript:

public class FaceBookGalleryEntryPoint implements EntryPoint {

@Override
public void onModuleLoad() {

FacebookGallery facebookGallery = new FacebookGallery();
RootPanel.get().add(facebookGallery);

initLoadGallery(facebookGallery);
}

private native void initLoadGallery(FacebookGallery pl) /*-{
$wnd.loadGallery = function (galleryId) {
pl.@com.example.fbg.client.FacebookGallery::loadGallery(Ljava/lang/String;)(galleryId);
};
}-*/;
}

在主机页面中,我试图调用它:
<html>
<head>
<title>Facebook image gallery</title>
<script type="text/javascript"
src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
</head>

<body>
<script type="text/javascript" src="/fbg/fbg.nocache.js"></script>
<h1>Facebook gallery test</h1>
<script type="text/javascript">
$(document).ready(function() {
loadGallery('blargh');
});
</script>
</body>
</html>

不幸的是,当调用 document.ready 回调时,该函数尚未定义。当从 Firebug 控制台手动执行时,该功能可以正常工作。

我可以每 50 毫秒执行一次轮询,直到找到按该名称定义的函数,但这似乎是一种可怕的方法。

如何在加载模块以及功能可用时收到通知?

最佳答案

我会尝试在主机页面中定义一个回调函数,并在 onModuleLoad() 方法的末尾从 GWT 调用它。

主机页面功能:

<script type="text/javascript">
function onGwtReady() {
loadGallery('blargh');
};
</script>

总重量:
public void onModuleLoad() {
FacebookGallery facebookGallery = new FacebookGallery();
RootPanel.get().add(facebookGallery);

initLoadGallery(facebookGallery);

// Using a deferred command ensures that notifyHostpage() is called after
// GWT initialisation is finished.
Scheduler.get().scheduleDeferred(new Command() {
public void execute() {
notifyHostpage();
}
}
}

private native void notifyHostpage() /*-{
$wnd.onGwtReady();
}-*/;

关于gwt - 找出 GWT 模块何时加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4210451/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com