国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > JavaScript > 正文

常用js,css文件統(tǒng)一加載方法(推薦) 并在加載之后調(diào)用回調(diào)函數(shù)

2019-11-20 08:54:19
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

為了方便資源管理和提升工作效率,常用的js和css文件的加載應(yīng)該放在一個(gè)統(tǒng)一文件里面完成,也方便后續(xù)的資源維護(hù)。所以我用js寫了以下方法,存放在“sourceController.js”文件內(nèi)。

function sourceController(){  var root = "";  var cssCount = 0; // css加載計(jì)數(shù)器  var jsCount = 0; // js加載計(jì)數(shù)器  this.callfunc = null; // 回調(diào)函數(shù)  this.opt = {    root : root  };  this.css = {    css0 : "javaScript/bootstrap/css/bootstrap.css",    css1 : "css/iconfont/iconfont.css",    css2 : "css/common.css"  };  this.script = {    script0 : "javaScript/jquery.js",    script1 : "javaScript/bootstrap/js/bootstrap.js"  };  /* 設(shè)置文件根目錄   * @param url 根目錄地址   */  this.setRoot = function(url){    root = url;  };  /* 設(shè)置回調(diào)函數(shù)   * @param func 回調(diào)函數(shù)   */  this.setCallBack = function(func){    this.callfunc = func;  };  /* 添加Script文件 請(qǐng)?jiān)赼ddSource錢調(diào)用   * @param url script文件路徑   */  this.addScript = function(url){    if (url === "" || url == null) return;    this.script["script" + Object.getOwnPropertyNames(this.script).length] = url;  };  /* 添加CSS文件 請(qǐng)?jiān)赼ddSource錢調(diào)用   * @param url css文件路徑   */  this.addCss = function(url){    if (url === "" || url == null) return;    this.css["css" + Object.getOwnPropertyNames(this.css).length] = url;  };  /* 添加常用資源 */  this.addSource = function(){    console.log("Source");    addMeta([["http-equiv", "X-UA-Compatible"],["content", "IE=edge"]]);    addMeta([["name", "viewport"],["content", "width=device-width, initial-scale=1"]]);    createCss(this);  };  /* 回調(diào)函數(shù)   * @param func 回調(diào)方法   * @param obj 當(dāng)前對(duì)象   */  function callback(obj){    console.log("func run");    obj.callfunc();  }  /* 添加<link> 默認(rèn)先加載css   * @param obj 當(dāng)前對(duì)象   */  function createCss(obj){    // 如果沒(méi)有css文件,不加載    if(Object.getOwnPropertyNames(obj.css).length <= 0) return;    var url = obj.css["css" + cssCount];    console.log(url);    var css = document.createElement("link");    css.setAttribute("rel", "stylesheet");    if (root != "") {      url = root + "/" + url;    }    css.href = url;    document.getElementsByTagName("head")[0].appendChild(css);    css.onload = function(){      cssCount++;      if (cssCount < Object.getOwnPropertyNames(obj.css).length){        createCss(obj);      }else{        // 如果有js文件,開(kāi)始加載js        if(Object.getOwnPropertyNames(obj.script).length > 0){          createJs(obj);        }      }    };  }  /* 添加<script> js加載完后執(zhí)行回調(diào)函數(shù)   * @param obj 當(dāng)前對(duì)象   */  function createJs(obj){    // 如果沒(méi)有js文件,不加載    if(Object.getOwnPropertyNames(obj.script).length <= 0) return;    var url = obj.script["script" + jsCount];    console.log("time:" + new Date().getTime() + " " + url);    var script = document.createElement("script");    script.setAttribute("type","text/javascript");    if (root != "") {      url = root + "/" + url;    }    script.src = url;    document.getElementsByTagName("head")[0].appendChild(script);    script.onload = function(){      jsCount++;      if (jsCount < Object.getOwnPropertyNames(obj.script).length){        createJs(obj);      }else{        // 如果有回調(diào)函數(shù) 執(zhí)行回調(diào)函數(shù)        if(obj.callfunc != null){          callback(obj);        }      }    }  }  /* 添加meta   * @param attr meta屬性,為二維數(shù)組   */  function addMeta(attr){    console.log("meta");    var meta = document.createElement("meta");    for (var i = 0; i < attr.length; i++){      meta.setAttribute(attr[i][0], attr[i][1]);    }    document.getElementsByTagName("head")[0].appendChild(meta);  }}

在需要引入的頁(yè)面只需要在<head>加入如下代碼就可以一下子引入所有的常用資源了。為了顯示美觀在所有布局完成之間body設(shè)置visibility為hidden,布局完成后顯示出來(lái)。

window.onload = function(){  var sc = new sourceController();  sc.addCss("css/index.css"); // 額外添加的css文件,必須在加載資源之前加入  sc.addScript("javaScript/index.js"); // 額外添加的js文件,必須在加載資源之前加入  sc.setCallBack(function(){    document.body.style.display = "block"; // 顯示body  });  sc.addSource(); // 加載常用的js和css文件};

以上就是小編為大家?guī)?lái)的常用js,css文件統(tǒng)一加載方法(推薦) 并在加載之后調(diào)用回調(diào)函數(shù)的全部?jī)?nèi)容了,希望對(duì)大家有所幫助,多多支持武林網(wǎng)~

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 渭源县| 富阳市| 丽江市| 凤冈县| 库伦旗| 廊坊市| 海宁市| 田阳县| 芒康县| 伊通| 彰武县| 临泉县| 敦化市| 平南县| 含山县| 屯门区| 祁阳县| 靖江市| 武清区| 胶州市| 房产| 图木舒克市| 浪卡子县| 曲周县| 信阳市| 永清县| 夏津县| 大埔区| 玛纳斯县| 同江市| 磐安县| 高唐县| 启东市| 张家口市| 舞阳县| 沧源| 铁岭市| 平阴县| 长沙县| 赤壁市| 北海市|