我们在rails网站上有一个ruby,它使用了许多使用js模板构建的远程ajax轨道。我们有新的要求将我们引向单页面应用程序的方向,其中页面的整个块和列将基于ajax。
我们应该继续使用rails ajax基础设施还是开始合并像angularjs这样的js框架?换句话说,确定js框架需求的主要评估标准是什么?
答案 0 :(得分:4)
就个人而言,我认为一旦你有需要可能更新页面的多个非相邻区域的ajax响应,那么现在肯定是时候介绍一个JS框架了。服务器生成的javascript(就像rails帮助者给你的那样)对于非常简单的事情来说非常方便,但是一旦事情变得比这更复杂,你最好只从rails返回JSON数据并让前端弄清楚页面的哪些部分应该更新。
你也没理由不得不是所有人中的一个。您可以继续使用Rails' JS帮助简单的东西,但在有意义的页面上,引入类似KnockoutJS,Backbone或Angular的东西。我将KnockoutJS以这种方式介绍给现有的应用程序并且它运行得很好。它有助于它不依赖于特定版本的jQuery,并且还支持旧版浏览器。
您需要决定的是,是否通过rubygem添加JS框架,或者只是下载并将其添加到资产管道中。第一种方式可能更简单,但它也会将你绑定到gem所包含的版本,这可能会让你在某些时候落后几个版本。如果我开始使用新的应用程序,我可能不会使用任何导轨' javascript助手,甚至可能不是资产管道,并使用像grunt这样的其他工具来代替。这几乎是一个关注点的分离。提前做更多的工作,而不是包括电池'折衷。
答案 1 :(得分:1)
当您可以为数据源使用更多后端JSON API时,像Angular这样的javascript框架是一个好主意,可以使rails代码更轻松。如果您不得不通过AJAX进行大量的来回通信,Angular甚至Backbone都可以让它变得更加清晰。这真的取决于你正在构建什么样的应用程序,你认为前端应该如何构建,以及框架是否可以帮助解决这个问题。
由于你已经将你的代码放在了遥控器中,并且js.erb正在运行,你可以坚持下去。如果它成为一个巨大的痛苦,我只会切换到这一点。在现有应用程序中更改框架/体系结构可能是一项相当大的工作。特别是如果你是角色的新手。
最近我在一个工作项目上工作,这个项目将更加客户端。我最终使用把手进行一些模板渲染,然后只使用几个单例对象。之所以这样,是因为我们没有持久的数据。只有几个字段变成了一个用ajax请求完成的cookie,然后是前端和数据的单个JSON端点数据。那些单身人士利用。
答案 2 :(得分:0)
如果你单页Rails仍然很好作为后端json api解决方案。当你进行比较测试时,node.js会相当快,但它是否会像Ruby和JavaScript等那样交换开发的快乐。如果你需要两倍的时间来重写/开发js代码,那会有多重要。 ..?
如果项目不是那种不是另一种“FB或Youtube的东西”我老实说认为Rails是很久以前企业准备好的框架。这是更新的结局故事,但希望你明白我的观点。干杯
答案 3 :(得分:0)
我会用:
您将投入时间来构建API,但是使用像Angular这样的框架(我说,对于这种应用程序,单页应用程序),前端会更容易。