javascript-基于组件的大型Web项目的Backbone-RequireJs样板

我们有一个大型的Web项目,在这里我们需要可以互相通信的组件,这些组件可以放在不同项目的组件*存储库中.
使用reuirejs和Backbone进行模块化开发.浏览了可用于主干和requirejs的不同样板,但没有一个符合我的要求.因此,我创建了以下目录结构.可以解释如下.

---resources
 |---custom-components
   |---mycomponent
     |---js
       |---views
       |---models
       |---collections
     |---css
     |---templates
     |---mycomponent.js
   |---mycomponent2
     |---js
       |---views
       |---models
       |---collections
     |---css
     |---templates
     |---mycomponent2.js
 |---libraries
   |---backbone
   |---underscore
   |---jquery
   |---jquery-ui
 |---jqueryplugins
   |---jcarouselite
 |---thirdpartyplugins
 |---page-js
   |---mypage.js
   |---mypage2.js

> resources目录将包含所有资源.在此之下,我们将提到4个目录.
>库,jqueryplugins和thirdpartyplugins显然是它们所说名称的目录.
> page-js目录将包含实际的main-js,它将在我们的html文件中用作requirejs data-main属性.
>自定义组件是我们创建的所有小部件都将驻留的位置,如您所见,它具有一个与该组件同名的js文件,它将作为该小部件的入口.该目录还包含js,css和模板的目录. CSS和模板将分别通过文本插件和CSS插件加载. Js目录将包含使该小部件工作的所有主干代码.

自定义组件将由驻留在page-js中的main-js询问.

满足我的需求.
    1.我希望专家们从大型Web项目的角度审查此目录结构,在此您需要与其他团队共享窗口小部件.欢迎提出建议.
    2.我的每个自定义组件都将定义一个模块,该模块将在包结构以及包外部结构中具有依赖性.我想知道,是否有任何方法可以使用r.js在包结构中仅优化我的自定义窗口小部件依赖性,并让插件和库分别进行优化.
    3.我正在开发单页ajax应用程序,因此我将按需询问模块,因此在不需要模块和小部件时需要清理它们,有什么方法可以清除吗?

解决方法:

关于目录结构

作为目录结构模式,我强烈建议使用cakePHP的目录结构.真的很健壮!我正在运行多个应用程序(其中一个与Groupon一样大),它的运行就像一个魅力.
您可能需要稍微调整一下,因为,cake是一个PHP框架,而您是一个JavaScript框架.

这是蛋糕的很棒的MVC目录结构:

请注意,您可以在单个Cake安装中托管数千个应用程序.因此,如果您有兴趣,还等什么呢? go to their site并阅读他们的文档.

关于清理技术

好吧,这是我不喜欢的Javascript的缺点之一.没有像Java或C那样真正破坏OO模块的方法.在这里,我们没有C的〜析构函数之类的东西.

多年来,程序员使用module = null来释放未使用的代码中的内存.

还要看看这些:

> Can dynamically loaded JavaScript be unloaded?
> Loading/unloading Javascript dynamically
> How to unload a javascript from an html?

希望它对设计您的应用程序有帮助并祝您好运; D

上一篇:java – 用于备份h2数据库的SQL“SCRIPT”命令


下一篇:安装laravel-boilerplate遇到的一些问题