是否有其他方法包含JavaScript文件?
我们习惯于使用标准的是否有其他方法包含JavaScript文件?,javascript,design-patterns,architecture,include,Javascript,Design Patterns,Architecture,Include,我们习惯于使用标准的单独包含一些javascript文件,但是。。。我真的不喜欢这样一种包括在内的方式 对于具有C#/C++背景的开发人员来说,许多特性对我来说都是一团糟 我真的不喜欢包含js文件的方式,但我明白,这是最常见的做法 有了这样的想法,我想尝试不同的可能方式 正如我所想,有两种可能的方法可以实现包含过程: 1) 。在虚函数-include()中动态创建标记,我可以在原型中定义它(js中的类模拟) 但是。。。这与标准中的方法几乎相同,但只是在原型中存储了一些动态逻辑,可以动态加载web
单独包含一些javascript文件,但是。。。我真的不喜欢这样一种包括在内的方式
对于具有C#/C++背景的开发人员来说,许多特性对我来说都是一团糟
我真的不喜欢包含js文件的方式,但我明白,这是最常见的做法
有了这样的想法,我想尝试不同的可能方式
正如我所想,有两种可能的方法可以实现包含过程:
1) 。在虚函数-include()
中动态创建标记,我可以在原型中定义它(js中的类模拟)
但是。。。这与标准中的方法几乎相同,但只是在原型中存储了一些动态逻辑,可以动态加载web应用程序的一些所需模块
这就是为什么我不喜欢它,但这是一个选择,我必须把它添加到列表中
2) 。通过AJAX/WebSockets/SPDY
动态加载js文件,这是您想要的,甚至可以通过执行分区函数(需要一些逻辑或实现一些设计模式)通过eval()
函数执行加载文件的部分,并在新定义的函数中准备它(args);
使js场景看起来像:
include( "models.js" );
include( "dbController.js" );
...
是的……我知道,eval()
在JavaScript世界中是一个邪恶的东西,但我不知道不同函数的名称,它允许我使用相同的功能
而且…和最初的包含方式相比,它可能太慢了,我再说一遍,它甚至很脆弱
这是我可以想象的两种方式,也许你会建议一个更好的解决方案,或者说服我放弃一些坏想法。是一个JavaScript模块化工具,它完全满足你的需要。你可以在自己的文件中定义模块,如下所示:
define('moduleName', [ dependencies ], function () {
// module code
});
并异步加载它们:
require('moduleName');
或作为其他模块的依赖项:
define([ 'moduleName' ], function (myModule) {
// other module
});
它还有一个用于将您的模块编译成一个JavaScript文件以备生产。@Barmar:)感谢您的链接,我将深入学习它。可能是闭包工具。您可以将所有与闭包兼容的代码编译到一个文件中,但仍然可以延迟加载定义用户不太可能使用的行为的部分代码。许多库与编译器不兼容,但不会使用您的代码进行编译。你需要外人去那些满满的图书馆+非常感谢您提供的新信息:)非常有用!