我正在启动一个新项目,我正在审查我的最佳实践,试图防止出现任何问题,同时也看看我遇到了什么样的坏习惯.
我对使用模块/子模块模式在Javascript中处理初始化序列的方式感到非常满意.
让我们说,我的代码最终会有类似的东西
FOO.init()
FOO.module1.init()
FOO.module2.init()
FOO.module3.init()
FOO.module4.init()
Run Code Online (Sandbox Code Playgroud)
在全球范围内.
我本质上是这样做的(错误检查和细节因为简洁而被忽略):
var FOO = (function (me) {
me.init = function () {
for (var i in me.inits) {
me.inits[i]();
}
}
return me;
}(FOO || {}));
var FOO = (function (parent) {
var me = parent.module1 = parent.module1 || {};
me.init = function () {
}
parent.inits.push(me.init);
return parent;
}(FOO || {}));
$(document).ready(FOO.init);
Run Code Online (Sandbox Code Playgroud)
用于初始化.
我知道我之前已经阅读过此内容,但我现在无法找到正确的搜索字词来查找文章.是否有经过深思熟虑和测试的模式处理像这样的情景中的初始化?
谢谢.
编辑:重读这个,我认为一些上下文将告知答案.
在我的例子中,每个模块/子模块都在自己的文件中.基本模块定义站点的基本功能,子模块启用不同的功能.例如,子模块可以在搜索框上连接自动完成,而另一个子模块可以将静态标题图像转换为旋转横幅.CMS启用/禁用子模块,因此我确实希望在基本模块内离开显式调用,以便CMS可以管理所有内容.我还有CMS特定的方法来实现这一点,但我寻找一个通用的Javascript模式来实现这一点,以提供可能使用不同CMS的项目之间的一致性和可重用性.
在几年前发现jQuery之后,我意识到在不编写代码书的情况下真正制作交互式和用户友好型网站是多么容易.随着项目规模的扩大,执行任何调试或实施变更或新功能所需的时间也会增加.
从阅读各种博客并保持更新,我已经阅读了类似于Backbone.js和JavascriptMVC的库,这两者听起来都是很好的选择,以使代码更加模块化和分离.
然而,由于远离Javascript或jQuery专家,我并不适合在项目中说明什么是一个好的基石,在这个项目中,可维护性,调试和开发的未来易用性是优先考虑的.
所以考虑到这一点 - 在开始一个Javascript和jQuery代表用户体验和数据呈现给用户的项目时,常识是什么?
非常感谢