gpt4 book ai didi

javascript - 什么更好——使用来自 assets/javascript/*.js 或 *.js.erb View 的 ajax 调用?

转载 作者:行者123 更新时间:2023-11-29 19:49:17 27 4
gpt4 key购买 nike

我正在使用 Rails 从网络通信器编写管理服务。

所以我的问题:用户点击一个按钮 -> 组用户看到网络组 -> 用户选择一些组 -> 用户看到 IP 地址。我在页面上有两个表单,我需要在不重新加载页面的情况下向页面发送两次数据。

第一个服务器响应是网络组名称列表。

第二个服务器响应是其中一个组中的 IP 地址列表。

问题:

用户请求后哪个更好:

  1. JS.ERB方式

    获取数据,将其放入 views/some_file.js.erb,在 Controller 中写入类似“respond_to{ |format| format.js }”的内容。预期结果:浏览器接收js,js代码在客户端运行,js代码追加数据到页面的table中。

  2. 在 assets/javascript 方式中使用 ajax 的 JS

    向客户端发送json格式的数据。 js 代码对服务器进行 ajax 调用,bowser 从服务器接收 json 数据,js 将数据附加到页面上的表中。

请解释这两种方式的优缺点。谢谢。

最佳答案

我想说最好的方法是向 groups_controller.rb 中的另一个 Controller 操作发出 AJAX 请求,例如 groups#names 并让 Action 渲染 JSON。

在诸如 app/assets/javascripts/script.js 之类的 javascript Assets 中执行此操作,如下所示:

$('#get-group-names-button').live('click', function(event) {
event.preventDefault();
$.ajax({
url: "/groups/names",
type: 'post',
data: {'groupId': 'whatever'}
});
});

然后在groups_controller

def names
if group_names
render :json => group_names, :status => 200
else
render :status => 400
end
end

然后在客户端使用 jquery done() 解析该 JSON 响应,并在 javascript 中附加您需要的任何 HTML 格式的数据。

这可以通过使用像 Backbone.js 这样的客户端框架得到极大的帮助。 ,以及类似 handlebars 的模板语言.

这是一个railscast关于 Ryan Bates 制作的主题

关于javascript - 什么更好——使用来自 assets/javascript/*.js 或 *.js.erb View 的 ajax 调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18261023/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com