要求:在jQuery优先下载后订购jQuery-UI

时间:2011-09-01 14:46:16

标签: javascript jquery requirejs

我正在加载像这样的jQuery

require({
    baseUrl: '{{ STATIC_URL }}js',
    paths: {
        jQuery: 'https://ajax.googleapis.com/ajax/libs/jQuery/1.5.1/jquery.min',
        jQueryui: 'http://ajax.googleapis.com/ajax/libs/jQueryui/1.8.12/jquery-ui.min'
    },
    priority: ['jQuery','jQuery-UI']
}, ['main']);

如何订购这样的jQuery-UI i是在jQuery之后加载的

1 个答案:

答案 0 :(得分:3)

有一些选择:

1)使用order plugin,然后不需要优先级配置:

require({
    baseUrl: '{{ STATIC_URL }}js',
    paths: {
        jQuery: 'https://ajax.googleapis.com/ajax/libs/jQuery/1.5.1/jquery.min',
        jQueryui: 'http://ajax.googleapis.com/ajax/libs/jQueryui/1.8.12/jquery-ui.min'
    }
}, ['order!jQuery', 'order!jQueryui', 'order!main']);

2)您可以嵌套需要的电话。在这种情况下,没有“优先级”配置。由于它连续加载脚本,因此加载速度稍慢:

//Set up config
require({
    baseUrl: '{{ STATIC_URL }}js',
    paths: {
        jQuery: 'https://ajax.googleapis.com/ajax/libs/jQuery/1.5.1/jquery.min',
        jQueryui: 'http://ajax.googleapis.com/ajax/libs/jQueryui/1.8.12/jquery-ui.min'
    }
});

//Do the loading.
require(['jQuery'], function () {
    //This assumes 'main' has explicitly indicated
    //jQueryui as a dependency.
    require(['jQueryui', 'main'] {

    });
});

3)如果只是'jQuery'被置于优先级配置中,那么只需要('jQueryui','main',假设'main'也将'jQueryui'设置为显式依赖。实际上有了这个,你可以只需要(['main'])和jQuery UI作为处理main.js的一部分加载。