javascript - 您应该从 Rails 服务器返回 javascript (.js.erb) 还是在 Ajax 调用后更新页面时使用 native JS 回调机制

标签 javascript jquery ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1

我正在执行一个 ajax 调用(使用 JQuery),Rails Controller 需要返回一个部分,以便我可以在 ajax 调用后更新页面。在我看来,有两种方法可以做到这一点。在 Controller 中,您过滤 ajax 调用(request.xhr?)并返回:

  1. 一个 .js.erb,作为 Ajax 调用本身的一部分在客户端执行(数据类型:脚本)。这个 .js.erb 文件操作 DOM 并注入(inject)部分的 html,如下所示:

    $('#content').html("<%= escape_JavaScript(render :partial => 'success') %>");

  2. 部分 ((dataType : html)。您在 ajax 调用上有一个成功回调方法,然后执行注入(inject),如下所示:

    $.post( url, 发送数据, 函数(数据){ $( "#result").empty().append(数据);

这 2 种解决方案都能完美运行,我只是不知道哪一种被认为是更好的编码实践并且更容易维护。

最佳答案

第二种选择是理想的。服务器永远不应该关心客户端。

关于javascript - 您应该从 Rails 服务器返回 javascript (.js.erb) 还是在 Ajax 调用后更新页面时使用 native JS 回调机制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7810931/

相关文章:

ruby-on-rails - Rails错误验证显示在字段下方

javascript - 如何使用 cakePHP 执行 ajax 请求?

jquery - 单击无控件时,bootstrap 轮播在 ios 上滑动

javascript - HapiJs 根据角色路由访问

javascript - 从列表 JQUERY 中获取点击输入的正确名称

jquery - 如何隐藏/显示一定长度内的更多文本(例如youtube)

ruby-on-rails - 使用 Capistrano 部署 Rails 5.1/Webpacker 应用程序

ruby-on-rails - 如何在 Ruby 中将数组元素作为单独的方法参数传递?

javascript - 如何防止自动 JSON 键类型转换

javascript - Form Preventdefault 不起作用,重定向到发布 url