完全加载两个js文件后如何调用公共函数?

时间:2016-07-05 18:22:18

标签: javascript google-maps google-maps-api-3 markerclusterer

我想以群集的形式在地图上显示标记,为此我正在使用" markercluster.js"和谷歌地图v3库。但问题是,要在地图上显示标记,应该完全加载文件。一个解决方案是我同步加载至少一个文件,但我想使用async和defer加载这两个文件。有什么方法可以实现这两件事。目前我正在以这种方式加载文件,但是当在markcluster之前加载googleapi时,它会在initialize函数内开始显示markerCluster为undefined。

class Status < ActiveRecord::Base
  belongs_to :task
  belongs_to :project
  =begin
    OPEN
    TESTING
    CLOSED
  =end
 validates :value, presence: true

1 个答案:

答案 0 :(得分:1)

您可以使用全局变量和onload事件。

<script async defer src="js/markerclusterer.js" onload="init()"></script>   
<script async defer src="//maps.googleapis.com/maps/api/js?v=3" onload="init()"></script>

然后你的功能看起来像这样:

var g_file_loaded = 0;

function init()
{
    g_file_loaded++;

    if (g_file_loaded === 2)
    {
        // your initialize function here
    }
}