Javascript Backbone.js大型多页面应用程序,干净地管理页面转换、销毁、创建等

Javascript Backbone.js大型多页面应用程序,干净地管理页面转换、销毁、创建等,javascript,design-patterns,backbone.js,Javascript,Design Patterns,Backbone.js,我目前正在构建一个巨大的主干应用程序(facebook克隆) 在过去的几天里,由于Rob Connery出色的教程(如果您从MVC 3和BB开始,则必须观看),您对BB中的一切工作感到非常满意 现在,我已经到了需要在我的应用程序中切换页面的阶段,我开始将其连接起来,但感觉我自己正在做很多事情。这很好,我知道我能做我想做的事 我已经深入研究了内存泄漏问题,通过确保在切换页面时解除绑定并删除模型/集合/视图 但除了这些,当我在页面之间切换时,还有一大堆任务要做。基本上是删除和添加页面的部分。这稍微有

我目前正在构建一个巨大的主干应用程序(facebook克隆)

在过去的几天里,由于Rob Connery出色的教程(如果您从MVC 3和BB开始,则必须观看),您对BB中的一切工作感到非常满意

现在,我已经到了需要在我的应用程序中切换页面的阶段,我开始将其连接起来,但感觉我自己正在做很多事情。这很好,我知道我能做我想做的事

我已经深入研究了内存泄漏问题,通过确保在切换页面时解除绑定并删除模型/集合/视图

但除了这些,当我在页面之间切换时,还有一大堆任务要做。基本上是删除和添加页面的部分。这稍微有点复杂,因为我不只是删除所有内容,我只想删除/破坏页面中需要更改的部分,基于我想进行的转换


如前所述,目前我自己正在工作,但我想知道是否有一种模式可以处理这个拆卸/拆卸过程,并保持干净(而不是以一个巨大膨胀的路由器结束(控制器膨胀!!!)提线木偶绝对是一种不错的选择。特别是,它可以在不重新呈现整个页面的情况下交换特定区域。请查看Derick的一些文章,以熟悉该框架

我建议在你的应用程序使用普通的旧事件运行之前远离路由器。然后在之后添加路由器支持。基本上,路由器应该连接起来以反映你的应用程序的状态,但你不应该依赖它作为你的控制器


顺便说一句,我正在一个大型多模块主干项目上使用RequireJS,这是天赐良机。这在BB社区中是有争议的,但如果你有很多相互依赖的组件,你想让另一个框架来处理所有的依赖关系,这是值得研究的。

我也遇到了你同样的问题,我想分享我是如何解决的因此,我使用我的页面转换约定从Backbone.js文档中重新设计了ToDo应用程序示例:


我还没有测试它是否存在内存泄漏,但如果有,只需在之前调用.unbind().remove()在应用程序路由器的SetView方法中。

这是最好的答案吗?或者这可能是一个很好的框架。你可能还想检查主干。layoutmanager最后实际使用了什么?这个项目留在主干中,很好。但我可能不会再使用主干,因为它迫使你包装你的数据。用了很多,但很多人不喜欢,因为它太厨房水槽了。我刚刚试用了VueJS,我认为它看起来真的很好,还有很多原因,我强烈建议你考虑一下,如果你需要一个框架,就像Dave在回答中指出的,布局会有所帮助。特别是,木偶。区域对象t将在交换视图时进行清理。布局是在视图中嵌入区域的视图。谢谢各位,我现在正沉浸在木偶中。这是一个奇怪的星期,我先准备好主干,撞上砖墙,然后整理好所有内容。有一段时间,木偶让我感觉回到了原点,但我所做的是重新开始在我的本地环境中复制,并且刚刚完成扩展,在其中包含第三个应用程序(克隆邮件应用程序)以如此干净的方式布置一切感觉真的很好。你认为使用它有任何缺点吗?我看到的唯一缺点是在主干上学习另一层抽象的精神负担。但是一旦你把你的头绕在木偶上,你就会开始用这些更高层次的概念来思考,你就会我会发现自己编写的相同样板代码更少。坚持下去,这是值得的!