js异步加载

// Loads libraries and then executes a handler function
function Requires(libraries, handler) {
    // Take first library from the list and load it
    var library = libraries[0];
 
    // Check if the library has not beed loaded yet
    if (typeof libraries_loaded == 'undefined')
        libraries_loaded = [];
 
    for (var i=0; i<libraries_loaded.length; i++)
        if (libraries_loaded[i] == library)
            return;
 
    // Load script
    var head = document.getElementsByTagName('head').item(0);
    var js = document.createElement('script');
 
    js.setAttribute('language', 'javascript');
    js.setAttribute('type', 'text/javascript');
 
    // Initiate loading remainding libraries after this one has been loaded
    js.onload = function () {
        // Remove current library from list as loaded one
        libraries.shift();
 
        // If all libraries loaded call our code handler
        if (libraries.length == 0) {
            handler.call();
        } else {
            // If more libraries need to be loaded, do it
            Requires.apply(this, [libraries, handler]);
        }
    };
 
    js.setAttribute('src', 'Scripts/' + library + '.js');
 
    // Add script element to DOM
    head.appendChild(js);
 
    // Add library to loaded libraries list
    libraries_loaded[libraries_loaded.length] = library;
}

转自: http://www.denys-klymenko.com/blog/loading-external-javascript-files-dynamically-and-synchronously/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值