javascript - Rails 的 RJS 替代方案

标签 javascript jquery ruby-on-rails rjs

我听说 RJS 中传递给客户端 js 代码而不是 json 或 html 的想法让很多人感到不安,因此他们避免使用 RJS。考虑到在没有 RJS 的 Rails 框架中使用 jquery 执行 ajax 的惯用方法到底是什么?有人可以指点我一个教程链接吗?

最佳答案

通过rails实现AJAX主要有两种方式:

第一个是使用 js.erb 文件、链接和表单中的 :remote => true 选项以及

respond_to do |format|
  format.js
end

在 Controller 中。关于如何实现它有一个很好的解释here .

另一种方法是编写纯 JavaScript(您当然可以使用 JQuery 的帮助)将 AJAX 请求发送到服务器并在客户端处理它们。通过这种方法,Javascript 被写入应用程序 Assets 文件夹中的单独 JS 文件中。

根据我的经验,从长远来看,最好使用第二种方式,原因有以下三个:

  1. 它使您可以完全分离客户端和服务器端代码。一个程序员可以只处理代码的一个方面,这是一个很大的优势。

  2. 测试单独的 JS 文件比测试 js.erb 文件容易得多。

  3. 它可以更轻松地重用 JavaScript 代码,并在投入生产时将其打包以进行缩小等操作。

关于javascript - Rails 的 RJS 替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12359976/

相关文章:

ruby-on-rails - Ubuntu 在后台运行 Puma 和 Sidekiq 作为守护进程

ruby-on-rails - 错误 : undefined method `each' for nil:NilClass

javascript - 使用onclick事件时如何加载html内容?

javascript - 当您导航回到它时更新已安装的屏幕

javascript - 无需重新加载页面即可提交表单,并链接到 javascript

javascript - 如何将歌曲添加到 jPlayer 播放列表的开头?

javascript - 使用 jQuery 或 javascript 将 div 替换为新的 div

javascript - AngularJS 指令回调函数

javascript - 仅在移动 View 中折叠列,仅在桌面 View 中折叠行

python - Python 3000 上有没有像 RoR 这样的框架?