动态加载外部javascript文件并等待它完成执行

时间:2014-03-11 22:08:38

标签: javascript jquery google-maps

正如标题所说,我需要懒惰的javascript加载,直到必要时。我知道人们已经多次询问过这个问题,并且有几种方法可以做到这一点:

  1. 创建脚本元素并将其附加到 head
  2. 使用jquery的 getScript 函数。这就是我实际使用的:

    $.getScript( some_url )
    .done(function( script, textStatus ) {
      console.log( textStatus );
    })
    .fail(function( jqxhr, settings, exception ) {
      $( "div.log" ).text( "Triggered ajaxError handler." );
    });
    
  3. 这两种方法的问题是,如果* some_url *上的脚本需要进一步加载其他文件,即使some_url完成加载并执行给我,它仍然处于过早状态并且失败了我的所有后续代码。一个例子是当我尝试在https://maps.googleapis.com/maps/api/js?key=abc&sensor=true底部加载Google Maps API时,我们可以看到:

    getScript("https://maps.gstatic.com/intl/en_us/mapfiles/api-3/16/3/main.js");
    

    因此,当我的 getScript 完成时,Google的 getScript 可能仍在加载。有没有想过要解决这个问题?

0 个答案:

没有答案