作为一些随机的rails开发人员,绕过所有这些主干/下划线javascript的东西…
backbone看起来很有趣,但从功能的角度来看(我的意思是从数据库中获取数据的方式,以及更新页面的方式),我看不出有什么好的理由去使用Backbone。我的意思是,与rails带来的RJS方法相比。
有了backbone,在客户端发生了更多的事情;但除了这个事实之外,看不到任何根本的区别
感谢任何骨干-布道者的反馈
发布于 2012-03-18 20:37:59
这肯定是一个偏好的问题,但是这里有一些杂乱无章的东西,为什么你可能想要使用像Backbone这样的东西而不是像RJS这样的东西。
当你只需要返回像$('#post_#{@post.id}').slideUp()或类似的代码时,RJS是很棒的。当你想让后端直接控制前端时。可以肯定的是,这对很多应用程序来说是有意义的。但当你开始处理更复杂的事情时:更改帖子标题、更改帖子正文、更改帖子标签、更改“最近发布的帖子”侧边栏中的帖子标题等。这可能很难快速维护。如果您巧妙地更改了标记,您可能会破坏所有的RJS。此外,使用RJS很难改变整个页面并保持用户的理智(例如,你会折回按钮,并且通常会在浏览器的状态下到处践踏)。
因此,对于更大/更多的端到端应用程序,您可以建立类似Backbone的东西来保持代码的组织,并将处理数据显示的逻辑移动到客户端。一些好处:
Backbone.View >D10、<代码>D11)是非常容易和低障碍的,views.js,或者app.js用于较小的东西,或者post_view.js,posts_collection.js...无论你需要什么)..。同样,也不是让javascript散布到遍布Rails的过程块中。如果你有一个很适合在单个页面上的应用程序(例如,页面之间有很多共享元素,比如导航/侧边栏等),那么它将非常适合于像Backbone这样的东西。
您的Rails应用程序可以更像一个应用程序接口,任何数量的前端都可以使用-- web的主干应用程序、iPhone应用程序等等。
当然也有不利的一面。您必须至少用Java(/Coffee)脚本编写一些应用程序的视图/控制器逻辑,并且当您长时间不重新加载页面时,您必须小心,以免导致内存泄漏和可能杀死您的应用程序的javascript错误。什么时候不是关于权衡的,对吧?
在这个37signals post about Basecamp Next (以及相应的HN discussion)上可以找到一个引人注目的例子,说明有人没有使用Backbone,否则它可能被认为是一个好主意。
如果我能为你澄清什么,请告诉我。
https://stackoverflow.com/questions/9757656
复制相似问题