【发布时间】:2011-12-19 19:49:00
【问题描述】:
目前我对如何拥有更可维护的 JavaScript 架构感到有些困惑。我可能跑题了,但我会说我几乎 50% 的代码涉及 DOM,因此使用我的基础库 (jQuery)。
我查看了 [1] Nicholas Zakas 的可扩展应用程序架构设计:http://developer.yahoo.com/yui/theater/video.php?v=zakas-architecture 和 [2] Addy Osmani Patterns For Large-Scale JavaScript Application Architecture http://addyosmani.com/largescalejavascript/。
我有一个单页应用程序样式,通过 ajax 获取大量内容并动态添加 DOM 元素。我的主要问题是:如果我使用 jQuery(或任何其他基础库)来操作 DOM,如何将代码分成可重复使用的小块。
让我们以一个任务列表模块为例。我知道该模块可能如下所示:
var TaskList = function() {
addTask = function() {
...
};
removeTask = function() {
...
};
return {
addTask: addTask,
removeTask: removeTask
}
}();
DOM 元素事件注册应该写在哪里,保存、加载或删除任务的 ajax 调用,将新任务附加到 DOM 元素等。
我没有任何问题承诺将模块上的 jQuery 作为依赖项,但如果有更好的方法,我想我从上面的两个资源中错过了它,我很想知道它。
我只是想用一种更优雅的方式来维护不断增长的 javascript,因为我厌倦了意大利面;)
感谢您的宝贵时间!
【问题讨论】: