【发布时间】:2014-09-09 02:43:05
【问题描述】:
目前,我使用类似于以下代码的模式加载我的所有 javascript。一个文件将反映站点中的单个页面或组件。例如,如果我有一个联系页面,则关联的 javascript 文件可能是:
(function () {
$(function () {
contactForm.init();
locationMap.init();
});
var contactForm = {
init: function () {
... Do form manipulation here
}
};
var locationMap = {
init: function () {
... Do map manipulation here
}
};
})();
这对于较小的网站来说很好,但随着网站的增长和功能需要跨页面共享或某些组件发展为相互依赖(例如,联系表单中的选项可能会根据选择位置图而改变)这种模式显示它的局限性。
我的问题是,我该如何改进这一点以允许模块之间不断增加的复杂性和依赖性?
【问题讨论】:
-
我没有足够的知识来对此发表答案 - 但您是否考虑过使用 AMD(异步模块定义),通过诸如 require.js 或 curl.js 之类的实现。该技术的目标之一是处理需求管理和重用。
-
感谢@james,我曾考虑过 require.js,但想更好地了解如何首先改进自己的代码。
-
我强烈建议:加强,在 JavaScript 之上使用一些改进的语言。我/我们选择了 TypeScript。例如。我无法比较 prev JS 维护和当前基于 TypeScript 的内容。它带有 The Revealing Module(您已经部分尝试使用)等架构功能。但是在某些 IDE 的支持下,它甚至可以进行编译时检查……这将是我的强烈建议……
-
我在我的 JavaScript 博客上写过关于通过依赖管理改进架构的文章,这里:jsforallof.us/2014/08/01/… 专门使用 Browserify 处理依赖关系
-
@benhowdle89 我会检查一下,谢谢。
标签: javascript design-patterns architecture