你的位置:首页 > Java教程

[Java教程]如何统一加载常用js和css文件


为了方便资源管理和提升工作效率,常用的js和css文件的加载应该放在一个统一文件里面完成,也方便后续的资源维护。所以我用js写了以下方法,存放在“sourceController.js”文件内。

 

/** * Created by Administrator on 2016/9/10. */function sourceController(){  var root = ""; // 根路径  this.opt = {    root : root  };  // css存储路径  this.css = {    css0 : "javaScript/bootstrap/css/bootstrap.css",    css1 : "css/iconfont/iconfont.css"  };  // js存储路径  this.script = {    script0 : "javaScript/jquery.js",    script1 : "javaScript/bootstrap/js/bootstrap.js"  };  /* 设置文件根目录   * @param url 根目录地址   */  this.setRoot = function(url){    root = url;  };  /* 添加常用资源 */  this.addSource = function(){    addMeta([["http-equiv", "X-UA-Compatible"],["content", "IE=edge"]]);    addMeta([["name", "viewport"],["content", "width=device-width, initial-scale=1"]]);    for (var i = 0; i < Object.getOwnPropertyNames(this.css).length; i++){      this.addCss(this.css["css" + i]);    }    for (var i = 0; i < Object.getOwnPropertyNames(this.script).length; i++){      this.addScript(this.script["script" + i]);    }  };  /* 添加Script文件   * @param url script文件路径   */  this.addScript = function(url){    var script = document.createElement("script");    script.setAttribute("type","text/javascript");    if (root != "") {      url = root + "/" + url;    }    script.src = url;    setTimeout(function(){      document.getElementsByTagName("head")[0].appendChild(script);    },1); // 为了保证顺序加载完整  };  /* 添加CSS文件   * @param url css文件路径   */  this.addCss = function(url){    var css = document.createElement("link");    css.setAttribute("rel", "stylesheet");    if (root != "") {      url = root + "/" + url;    }    css.href = url;    document.getElementsByTagName("head")[0].appendChild(css);  };  /* 回调函数   * @param func 回调方法   */  this.callback = function(func){    setTimeout(func,50); // 为了让文件加载完成,页面排布完毕  };  /* 添加meta   * @param attr meta属性,为二维数组   */  function addMeta(attr){    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);  }}

在需要引入的页面只需要在<head>加入如下代码就可以一下子引入所有的常用资源了。为了显示美观在所有布局完成之间body设置visibility为hidden,布局完成后显示出来。

<script src="javaScript/sourceController.js"></script><script>   window.onload = function(){     var sc = new sourceController();     sc.addSource();     sc.addCss("css/common.css"); // 额外需要添加的css文件     sc.addScript("javaScript/index.js"); // 额外需要添加的js文件     sc.callback(function(){       document.body.style.display = "block"; // 所有布局完成后的回调方法,可以根据个人需要定义     });   };</script>