Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用它加载OpenLayers库';s依赖项(Google和OSM)是否可以异步?_Javascript_Google Maps Api 3_Openlayers_Openstreetmap - Fatal编程技术网

Javascript 用它加载OpenLayers库';s依赖项(Google和OSM)是否可以异步?

Javascript 用它加载OpenLayers库';s依赖项(Google和OSM)是否可以异步?,javascript,google-maps-api-3,openlayers,openstreetmap,Javascript,Google Maps Api 3,Openlayers,Openstreetmap,我构建了一个AJAX应用程序,并在我的应用程序中有一个使用OpenLayers的专用部分 目前,我的Application.html文件中包含以下内容,因此它将在应用程序启动时包含: <script src="http://openlayers.org/api/2.11/OpenLayers.js"></script> <script src="http://maps.google.com/maps/api/js?sensor=false"></scri

我构建了一个AJAX应用程序,并在我的应用程序中有一个使用OpenLayers的专用部分

目前,我的Application.html文件中包含以下内容,因此它将在应用程序启动时包含:

<script src="http://openlayers.org/api/2.11/OpenLayers.js"></script>
<script src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script src="http://www.openstreetmap.org/openlayers/OpenStreetMap.js"></script>

现在我想在需要的时候加载所有这些东西,因为它有大约500-1000kb的大小。但我不知道怎么做

我所尝试的:

  • 加载OpenLayers.js并在其回调中:
  • 。。。加载GoogleMaps.js和OpenStreetMap.js。当这两者都完成时:
  • 。。。显示我的地图
  • 有时它能工作,但大多数时候它不能,因为:GoogleMaps.js和OpenStreetMap.js有一些额外的.js、.css、.png等依赖项,这些依赖项独立于我的回调加载

    这意味着:3.js文件已经完成加载,回调告诉我的应用程序显示地图,但在后台,这些.js文件仍然获取使用OpenLayers所需的其他内容


    有什么办法可以解决这个问题吗?您可能有兴趣使用以下方法之一或它们的组合

    (一)


    2)

    也许你可以试试GWT OpenLayers


    否,再否。。。包含这些外部.js文件并在加载这些文件时进行回调是没有问题的。问题是:这些外部.js文件加载其他外部文件,而对于那些我没有回调的文件。所以我不知道什么时候所有的东西都装好了。示例:a.js在内部加载b.js。如果我将回调放在a.js上,它会在a.js完成加载时触发,但此时我没有关于b.js状态的信息(它可能已经加载,或者可能需要一些时间)。哦,我的错误。我现在理解了这个问题。@Ben问题的标题可能需要更改,以便集中在资源加载问题上,避免提及技术+但是,在这个问题上,我只有一个答案!!!我已经使用了gwt openlayers。但这是一个普遍的javascript问题;-)虽然我不赞成交叉发布,但如果这确实是特定于OL的,那么您可能会在GIS exchange站点上获得更大的成功:同样,如果它不是特定于OL的,但对JS应用程序来说是通用的,那么您可以将其重新解释为子JS库的跟踪加载完成。如果是这样的话,你可以换一个更通用的题目来回答这个问题。