正如标题所说,我需要懒惰的javascript加载,直到必要时。我知道人们已经多次询问过这个问题,并且有几种方法可以做到这一点:
使用jquery的 getScript 函数。这就是我实际使用的:
$.getScript( some_url )
.done(function( script, textStatus ) {
console.log( textStatus );
})
.fail(function( jqxhr, settings, exception ) {
$( "div.log" ).text( "Triggered ajaxError handler." );
});
这两种方法的问题是,如果* 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 可能仍在加载。有没有想过要解决这个问题?