javascript-基于组件的大型Web项目的Backbone-RequireJs样板
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript-基于组件的大型Web项目的Backbone-RequireJs样板,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2246字,纯文字阅读大概需要4分钟。
内容图文
我们有一个大型的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
内容总结
以上是互联网集市为您收集整理的javascript-基于组件的大型Web项目的Backbone-RequireJs样板全部内容,希望文章能够帮你解决javascript-基于组件的大型Web项目的Backbone-RequireJs样板所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。