Javascript 每个函数都包含在单独的js文件中,但仅在使用时包含

Javascript 每个函数都包含在单独的js文件中,但仅在使用时包含,javascript,performance,Javascript,Performance,嘿,我正在尝试一些东西(因为我很无聊),每个函数都可以使用js文件,但若只需要,那个么这个文件就会被复制。所以我写了这样的东西。此站点的某些部分 library.js: var jsfiles = new Array( "jsLibrary/try.js", "jsLibrary/try2.js" ); var loadedJsFiles = []; function loadFile(filepath,callback){ var head = document.g

嘿,我正在尝试一些东西(因为我很无聊),每个函数都可以使用js文件,但若只需要,那个么这个文件就会被复制。所以我写了这样的东西。此站点的某些部分

library.js:

var jsfiles = new Array(
    "jsLibrary/try.js",
    "jsLibrary/try2.js"
);

var loadedJsFiles = [];

function loadFile(filepath,callback){
    var head = document.getElementsByTagName('head')[0];
    var script = document.createElement('script');
    script.type = 'text/javascript';
    script.src = filepath;
    script.onreadystatechange = callback;
    script.onload = callback;
    head.appendChild(script);
}

function loadalljs(callback,jsnum){
    if(!jsnum){jsnum = 0;}
    if(jsnum<jsfiles.length){
        if(!isArrayNode(jsfiles[jsnum],loadedJsFiles)){
            loadedJsFiles.push(jsfiles[jsnum]);
            loadFile(jsfiles[jsnum],function(){
                loadalljs(callback,jsnum+1);    
            });
        }else{
            loadalljs(callback,jsnum+1);
        }
    }else if(jsnum==jsfiles.length){
        callback();
    }
}

function isArrayNode(str, arr) {
    for (var i = 0; i < arr.length; i++) {
        if (str == arr[i]) {
            return true;
        }
    }
    return false;
}

function lb(){
    this.scripts = function(callback,includePageJs){
        loadalljs(function(){
            if(includePageJs){
                loadFile(includePageJs,function(){
                    callback(); 
                })
            }else{
                callback();
            }
        }); 
    };
    this.a = 5;
}

var library = new lb;
try2.js:

function try2(){
    alert("try2");  
}
mypage.js:

function mypagefunction(){
    alert("mypagejs");  
}
我是这样使用它的:

<script type="text/javascript" src="jsLibrary/library.js"></script>
<script>
    library.scripts(function(){
        tryfunction();
        try2();
        mypagefunction();
    },"jsLibrary/mypagejs.js");

    library.scripts(function(){
        alert(library.a)
    });
</script>

脚本(函数(){
tryfunction();
try2();
mypagefunction();
},“jsLibrary/mypagejs.js”);
脚本(函数(){
警报(库a)
});
有没有简单的方法可以做到这一点?谢谢你的任何想法或帮助。(请不要用jquery)

使用


requirejs.config({
路径:{
“try1”:“../path\u to\u your\u try.js”,
'try2':'../path_to_your_try2.js',
“mypage”:“../path_to_your_mypage.js”,
}  
});
要求([
“try1”、“try2”、“mypage”
],功能(Try1,Try2,MyPage){
//Try1参考Try1文件
//Try2参考Try2文件
//MyPage指的是MyPage文件
});
使用


requirejs.config({
路径:{
“try1”:“../path\u to\u your\u try.js”,
'try2':'../path_to_your_try2.js',
“mypage”:“../path_to_your_mypage.js”,
}  
});
要求([
“try1”、“try2”、“mypage”
],功能(Try1,Try2,MyPage){
//Try1参考Try1文件
//Try2参考Try2文件
//MyPage指的是MyPage文件
});

您可能想要签出-与您想要的内容类似。这是一个好页面,谢谢。您可能想要签出-与您想要的内容类似。这是一个好页面,谢谢。
<script type="text/javascript" src="jsLibrary/library.js"></script>
<script>
    library.scripts(function(){
        tryfunction();
        try2();
        mypagefunction();
    },"jsLibrary/mypagejs.js");

    library.scripts(function(){
        alert(library.a)
    });
</script>
<script>
  requirejs.config({
    paths: {
      'try1': '../path_to_your_try.js',
      'try2': '../path_to_your_try2.js',
      'mypage': '../path_to_your_mypage.js',
    }  
  });

  require([
    'try1', 'try2', 'mypage'
  ], function(Try1, Try2, MyPage){

    // Try1 refer to try1 file
    // Try2 refer to try2 file
    // MyPage refer to mypage file

  });
</script>