javascript代码还是json对象作为ajax响应?
我正在阅读Rails指南,尤其是我在读这篇文章:让我有点困惑的是反应。它表示,如果create操作接收到AJAX请求,那么它将返回将在页面中插入用户的javascript代码。我还发现了其他解决方案,其中客户端接收一个json对象(而不是javascript代码),构建相应的DOM元素并将它们插入页面中。我的问题是:javascript代码还是json对象作为ajax响应?,javascript,ruby-on-rails,ajax,json,Javascript,Ruby On Rails,Ajax,Json,我正在阅读Rails指南,尤其是我在读这篇文章:让我有点困惑的是反应。它表示,如果create操作接收到AJAX请求,那么它将返回将在页面中插入用户的javascript代码。我还发现了其他解决方案,其中客户端接收一个json对象(而不是javascript代码),构建相应的DOM元素并将它们插入页面中。我的问题是: 接收json对象并构建DOM元素并将其插入页面是否比接收javascript代码并执行以便向页面添加新内容更好?关于它的最佳实践是什么 在本例中,ajax调用将接收什么?javas
没有对错之路。在您引用的示例中,ajax调用将接收javascript,然后在浏览器中执行。但是,您可能希望在javascript响应中嵌入html。例如,以下是在响应中插入的rails部分:
Controller:
def create
@user=User.new(:user_params)
@user.save
respond_to do |format|
format.js()
end
end
View:create.js
$("#user_list").append('<%=render(partial:'user_row')%>')
Partial: _user_row.html.erb
<div class="user-row"><%=@user.name%></div>
控制器:
def创建
@user=user.new(:user_参数)
@user.save
回应待办事项|格式|
format.js()
结束
结束
视图:create.js
$(“#用户列表”)。附加(“”)
部分:_user_row.html.erb
partial将自动访问create controller方法中的变量。如果要插入的html很大或很复杂,这可以大大简化代码并使其更具可读性
为了在用json响应时做同样的事情,正如您所说的,您必须手动构建DOM元素。如果服务器资源有限,或者如果希望限制通过网络发送的数据量,则更希望手动构建DOM元素。请注意,当您使用json响应时,大部分工作都在浏览器中完成,您只需发送json对象,而不是使用嵌入html的javascript