Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 何时使用js框架?_Ruby On Rails_Javascript Framework - Fatal编程技术网

Ruby on rails 何时使用js框架?

Ruby on rails 何时使用js框架?,ruby-on-rails,javascript-framework,Ruby On Rails,Javascript Framework,我们有一个RubyonRails网站,它使用了很多rail内置的远程ajax和js模板。我们有了新的需求,这些需求将我们带向一个单页面应用程序的方向,在这个应用程序中,页面的整个块和列都将基于ajax 我们应该继续使用rails ajax基础设施还是开始合并像angularjs这样的js框架?换句话说,确定是否需要js框架的主要评估标准是什么?当您可以为数据源使用更后端的JSON API时,像Angular这样的javascript框架是一个好主意,这样可以使rails代码更轻松。如果您必须通过

我们有一个RubyonRails网站,它使用了很多rail内置的远程ajax和js模板。我们有了新的需求,这些需求将我们带向一个单页面应用程序的方向,在这个应用程序中,页面的整个块和列都将基于ajax


我们应该继续使用rails ajax基础设施还是开始合并像angularjs这样的js框架?换句话说,确定是否需要js框架的主要评估标准是什么?

当您可以为数据源使用更后端的JSON API时,像Angular这样的javascript框架是一个好主意,这样可以使rails代码更轻松。如果您必须通过AJAX进行大量的来回通信,Angular甚至Backbone都可以使这一点更加清晰。这实际上取决于您正在构建什么样的应用程序,您认为前端应该如何构造,以及框架是否可以帮助构建

由于js.erb正在运行,您的代码已经在远程true中,因此您可以继续使用它。我只会在这一点上真正转换,如果它成为一个巨大的痛苦。因为在现有应用程序中更改框架/架构可能是一项相当大的工作。特别是如果你是新手


最近,我在工作中做了一个项目,这个项目将更加依赖于客户端。最后,我使用手柄进行了一些模板渲染,然后使用了一些单例对象。但这样做的原因是因为我们没有保存太多的数据。只需将几个字段放入一个cookie中,该cookie是通过ajax请求完成的,然后是前端数据的单个JSON端点&这些单例使用。

如果您使用单页Rails,它仍然是后端JSON api解决方案的理想之选。当您进行比较测试时,node.js会更快,但它是否会将其转换为Ruby vs JavaScript等开发的乐趣。。如果您需要两倍的时间在js代码中重写/开发它,这算不算

若这个项目不是另一个“FB或Youtube的东西”,我真的认为Rails早就成为了企业级框架了。这是一个新的结局,但希望你明白我的意思。干杯

我会用:

  • 使用gem或类似工具的API-Rails
  • 安格拉斯

  • 您将投入时间构建API,但是,使用Angular(我说过,对于这种应用程序,是单页应用程序)这样的框架,前端将更容易。

    我个人认为,一旦您有ajax响应,可能需要更新页面的多个非相邻区域,现在绝对是引入JS框架的时候了。服务器生成的javascript(如rails助手提供的)对于非常简单的事情来说非常方便,但一旦事情变得更复杂,您最好从rails返回JSON数据,让前端根据这些数据确定页面的哪些部分应该得到更新

    你也没有理由非得是一个或另一个。您可以继续使用Rails的JS助手来完成简单的工作,但在有意义的页面上,可以引入类似KnockoutJS、主干或Angular的内容。我以这种方式将KnockoutJS引入到现有的应用程序中,效果非常好。它不依赖于特定版本的jQuery,也支持较旧的浏览器,这对它有所帮助


    您需要决定的一件事是,是通过rubygem添加JS框架,还是下载并添加到您的资产管道中。第一种方法可能更简单,但它也会将您绑定到gem附带的版本,这可能会在某个时候留下几个版本。如果我要启动一个新的应用程序,我可能不会使用rails的javascript助手,甚至可能不会使用资产管道,而是使用grunt等其他工具来实现。这几乎是一种“关注点分离”,需要更多的前期工作,而不是“包括电池”的权衡。

    更新多个非相邻区域似乎是一个关键标准。还想知道将Rails用于大型js模板是否有意义,Rails正在为大型区域(如仪表板)提供服务。如果js框架是拼凑而成的,那么后端API会有点复杂吗?有趣的是,没有人提到
    EmberJS
    …所以另一个标准是,如果有大量数据和主要数据输入交互使用html表单,那么js框架将是最好的方法?