我们习惯使用标准<script src="file.js"></script>
单独包含一些javascript文件,但是......我真的不喜欢这样的包含方式。
对于具有C#/ C ++背景的开发人员来说,很多功能对我来说都是一团糟。
我真的不喜欢包含js文件的方式,但据我所知,这是最常规的做法。
有了这样的想法,我想尝试不同的方法。
正如我所想,有两种可能的方法,它们能够实现包含过程:
1)。在虚函数中创建动态标签 - include()
,我可以在我的原型中定义(js中的类模仿)。
但是......它几乎与标准相同,但只是存储在原型中的一些动态逻辑,可以动态加载一些所需的Web应用程序模块。
这就是我不喜欢它的原因,但这是一个选项,我必须将其添加到列表中。
2)。通过AJAX/WebSockets/SPDY
通过eval()
动态加载js文件,通过include( args );
执行以下执行,您希望甚至使用partion函数执行(需要一些逻辑或实现一些设计模式)来处理已加载文件的各个部分函数并在新定义的函数include( "models.js" );
include( "dbController.js" );
...
中准备它以使js场景看起来像:
eval()
是的......我知道,{{1}}在JavaScript世界中是邪恶的,但我不知道不同功能的名称,它允许我具有相同的功能。
另外......与原来的包容方式相比,它可能太慢了,我甚至可以重复这种方式。
这是我可以想象的两种方式,也许你会建议一个更好的解决方案或说服我从一些不好的想法。
答案 0 :(得分:0)
Require.js是一个JavaScript模块化工具,可以完全满足您的需求。您可以在自己的文件中定义模块,如下所示:
define('moduleName', [ dependencies ], function () {
// module code
});
以异步方式加载它们:
require('moduleName');
或作为其他模块的依赖:
define([ 'moduleName' ], function (myModule) {
// other module
});
它还有一个optimisation tool,用于将您的模块编译成一个可供生产的JavaScript文件。