首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Backbone与RJS

Backbone与RJS
EN

Stack Overflow用户
提问于 2012-03-18 18:41:39
回答 1查看 406关注 0票数 2

作为一些随机的rails开发人员,绕过所有这些主干/下划线javascript的东西…

backbone看起来很有趣,但从功能的角度来看(我的意思是从数据库中获取数据的方式,以及更新页面的方式),我看不出有什么好的理由去使用Backbone。我的意思是,与rails带来的RJS方法相比。

有了backbone,在客户端发生了更多的事情;但除了这个事实之外,看不到任何根本的区别

感谢任何骨干-布道者的反馈

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-18 20:37:59

这肯定是一个偏好的问题,但是这里有一些杂乱无章的东西,为什么你可能想要使用像Backbone这样的东西而不是像RJS这样的东西。

当你只需要返回像$('#post_#{@post.id}').slideUp()或类似的代码时,RJS是很棒的。当你想让后端直接控制前端时。可以肯定的是,这对很多应用程序来说是有意义的。但当你开始处理更复杂的事情时:更改帖子标题、更改帖子正文、更改帖子标签、更改“最近发布的帖子”侧边栏中的帖子标题等。这可能很难快速维护。如果您巧妙地更改了标记,您可能会破坏所有的RJS。此外,使用RJS很难改变整个页面并保持用户的理智(例如,你会折回按钮,并且通常会在浏览器的状态下到处践踏)。

因此,对于更大/更多的端到端应用程序,您可以建立类似Backbone的东西来保持代码的组织,并将处理数据显示的逻辑移动到客户端。一些好处:

  • 您将减少服务器上的负载,因为客户端将做大量的渲染工作。
  • 您在客户端模板中更改了一些标记,如果有更改,则修改相应的代码是很自然和简单的,而不是在Rails中潜在的几个控制器操作的底部。
  • 您可以轻松地处理多个页面/状态之间的导航,并将该逻辑保留在客户端上。
  • 将javascript严格组织到对您的应用程序有意义的任何内容(例如,< Backbone.View >D10、<代码>D11)是非常容易和低障碍的,views.js,或者app.js用于较小的东西,或者post_view.jsposts_collection.js...无论你需要什么)..。同样,也不是让javascript散布到遍布Rails的过程块中。

如果你有一个很适合在单个页面上的应用程序(例如,页面之间有很多共享元素,比如导航/侧边栏等),那么它将非常适合于像Backbone这样的东西。

您的Rails应用程序可以更像一个应用程序接口,任何数量的前端都可以使用-- web的主干应用程序、iPhone应用程序等等。

当然也有不利的一面。您必须至少用Java(/Coffee)脚本编写一些应用程序的视图/控制器逻辑,并且当您长时间不重新加载页面时,您必须小心,以免导致内存泄漏和可能杀死您的应用程序的javascript错误。什么时候不是关于权衡的,对吧?

在这个37signals post about Basecamp Next (以及相应的HN discussion)上可以找到一个引人注目的例子,说明有人没有使用Backbone,否则它可能被认为是一个好主意。

如果我能为你澄清什么,请告诉我。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9757656

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档