gpt4 book ai didi

javascript - dojo.addOnLoad() 从不在 GWT 页面中触发

转载 作者:行者123 更新时间:2023-11-29 20:13:59 24 4
gpt4 key购买 nike

我正在尝试在 GWT 项目中加载基本的 ESRI ArcGIS map 。 javascript ArcGIS API 是用 Dojo 编写的,似乎需要您使用 dojo.addOnLoad() 来确保初始化 map 对象的代码在 ArcGIS API 完全初始化后才会运行。代码如下所示:

    var map;        
dojo.require("esri.Map");
function init() {
map = new esri.Map("mapDiv");
var basemapURL= "http://server.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer";
var basemap = new esri.layers.ArcGISTiledMapServiceLayer(basemapURL);
map.addLayer(basemap);
}
dojo.addOnLoad(init);

问题是,当我在 GWT 项目中使用这段代码时,它从不调用我传递给 dojo.addOnLoad 的函数。 map 永远不会被初始化,也永远不会出现。我已经用 Firebug 验证了 addOnLoad() 正在被调用,但 init() 没有被调用。

我尝试通过在定时器中从 GWT 代码调用 init() 来解决这个问题,这有效,但只有大约 50% 的时间。其余时间我收到错误“TypeError: dojox.gfx.createSurface is not a function”,所以我很确定我这样做是在创建竞争条件。

在 Eclipse 中以开发人员模式运行项目或在 Tomcat 中托管已编译的项目没有区别。

最佳答案

您还可以使用 gwt-esri 库:http://code.google.com/p/gwt-esri/

关于javascript - dojo.addOnLoad() 从不在 GWT 页面中触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8055410/

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