jQuery getScript - 包括进入主范围的文件?

时间:2012-01-21 14:11:38

标签: jquery backbone.js eval getscript

我已经考虑过如何在backbone.js-application中包含文件。在生产中,我显然会加入我的文件并最小化它们以保持最低要求,但在开发过程中,只需加载所有文件并且不必为每一个小变化调用一个buildscript就好了。

所以我看了jQuery的{​​{1}} - 方法。我试了一下,然后才能加载我的文件。

由于我已将getScript() - 调用放入函数中,为确保在启动backbone.js应用程序之前加载文件,似乎每个加载的脚本都不包含在全局范围内。

getScript

1 个答案:

答案 0 :(得分:6)

首先,您只是调用loader()而不是传递函数:

$(document).ready(loader);

将解决这个问题

其次,您正在调用init回调,而不是在加载所有脚本时。如果有许多脚本需要使用promises:

    var scripts = ['/app/routers/myrouter.js'];
    for (var i = 0; i < scripts.length; i++) {
        scripts[i] = $.getScript(scripts[i]);
    }


    $.when.apply( $, scripts ).then( init, function(){
        "some script failed";
    });

上面使用的语法是$.when( promise1, promise2, ...).then( successCallback, failureCallback) - 我们用promises填充数组,并使用.apply将它们作为参数应用。

http://api.jquery.com/jQuery.when/

http://api.jquery.com/Deferred.then/