还有其他方法可以包含JavaScript文件吗?

时间:2014-02-11 07:34:08

标签: javascript design-patterns architecture include

我们习惯使用标准<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世界中是邪恶的,但我不知道不同功能的名称,它允许我具有相同的功能。

另外......与原来的包容方式相比,它可能太慢了,我甚至可以重复这种方式。

这是我可以想象的两种方式,也许你会建议一个更好的解决方案或说服我从一些不好的想法。

1 个答案:

答案 0 :(得分:0)

Require.js是一个JavaScript模块化工具,可以完全满足您的需求。您可以在自己的文件中定义模块,如下所示:

define('moduleName', [ dependencies ], function () {
  // module code
});

以异步方式加载它们:

require('moduleName');

或作为其他模块的依赖:

define([ 'moduleName' ], function (myModule) {
   // other module
});

它还有一个optimisation tool,用于将您的模块编译成一个可供生产的JavaScript文件。