同域异步顺序加载js的简单描述

2017-07-01 16:08:05 Javascript 2747 0

本次以代码的形式描述过程

/**
* 异步顺序加载js [要求同域的js] [附带缓存时间3600秒]
* Usage:
    async_js(["a.js","b.js"],function(){
        console.log("加载成功");
    });
*/
var async_js = function(src_arr,callback){
    'use strict';
    var those_js="";
    $.ajax({
        "url":src_arr[0],
        "beforeSend": function(xhr){ 
            // 附带缓存时间3600秒
            xhr.setRequestHeader("Cache-Control","private,max-age=3600")
        }, 
        "success":function(js_text){
            those_js += js_text;    // 添加新的js文本到临时变量中
            if( 1<src_arr.length ){
                async_js( src_arr.slice(1), callback);
            }else{
                eval( those_js );   // 将所有加载的js执行
                callback();         // 执行回调
            }
        }
        ,"error":function(){
            // 发生错误时的提醒
            console.error("src:"+src+" 加载失败");
        }
    });
}
注:若无特殊说明,文章均为云天河原创,请尊重作者劳动成果,转载前请一定要注明出处