Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.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
Javascript Rails-格式和渲染-它们是如何工作的?_Javascript_Ruby On Rails_Ruby_Json_Ujs - Fatal编程技术网

Javascript Rails-格式和渲染-它们是如何工作的?

Javascript Rails-格式和渲染-它们是如何工作的?,javascript,ruby-on-rails,ruby,json,ujs,Javascript,Ruby On Rails,Ruby,Json,Ujs,据我所知,调用render将向浏览器返回响应。它可以返回不同类型的内容(html、json、js等)。然而,我有点困惑浏览器之后会做什么 如果响应是html,则浏览器仅呈现页面。如果响应是json,那么客户端js代码通常会获取json响应并对其执行一些有用的操作。如果响应是js,浏览器会做什么?我不确定这个js是否附加到文档中并执行?这与Rails UJS有关吗 另外,渲染与响应的关系如何?它们是并排使用的,还是一个优于另一个 render html: render js: render jso

据我所知,调用
render
将向浏览器返回响应。它可以返回不同类型的内容(html、json、js等)。然而,我有点困惑浏览器之后会做什么

如果响应是html,则浏览器仅呈现页面。如果响应是json,那么客户端js代码通常会获取json响应并对其执行一些有用的操作。如果响应是js,浏览器会做什么?我不确定这个js是否附加到文档中并执行?这与Rails UJS有关吗

另外,渲染与响应的关系如何?它们是并排使用的,还是一个优于另一个

render html:
render js:
render json:

respond_to |format| do
  format.html
  format.js
  format.json
end
抱歉,如果这看起来像是很多问题,但我认为如果这些问题一起讨论会有所帮助

如果响应是js,浏览器会做什么

这完全取决于浏览器和用户的javascript环境。您的应用程序返回js,浏览器将以其认为最好的方式处理它

我不确定这个js是否附加到文档中并执行?这与Rails UJS有关吗

UJS更重要的是确保应用程序能够正常工作,即使用户浏览器不处理javascript。例如,您编写脚本拦截按钮单击事件并取消单击操作,而不是执行其他操作,例如AJAX调用。 如果用户禁用了javascript,则不会发生此截获。因为您是这样编写js的,所以会发生正常的按钮单击操作。这两种情况都应该得到处理,而且都应该起作用——这就是javascript的低调使用

至于附加到文档,不是完全没有。浏览器会收到一堆代码,如果可以,它会在当前文档的上下文中运行这些代码。然后,它不会将代码保存到任何地方,当它完成时,它将被丢弃,文档将保持在脚本留下的任何状态

渲染与响应的关系如何?它们是并排使用的,还是一个优于另一个

render html:
render js:
render json:

respond_to |format| do
  format.html
  format.js
  format.json
end
respond\u to
允许您根据用户提出请求的方式来控制对用户的响应方式。在上面的UJS示例中,这允许您拥有一个响应HTML和AJAX请求的方法,但知道其中的区别,并且可以对其响应进行任何需要的更改

例如:

respond_to |format| do
  format.html # will by default render the view with this actions name
  format.json do # lets pass back the object in json format
    render @object.to_json
  end
end
这些都是作为介绍性的答案,非常简单,我建议进一步阅读每一个主题

如果响应是js,浏览器会做什么

这完全取决于浏览器和用户的javascript环境。您的应用程序返回js,浏览器将以其认为最好的方式处理它

我不确定这个js是否附加到文档中并执行?这与Rails UJS有关吗

UJS更重要的是确保应用程序能够正常工作,即使用户浏览器不处理javascript。例如,您编写脚本拦截按钮单击事件并取消单击操作,而不是执行其他操作,例如AJAX调用。 如果用户禁用了javascript,则不会发生此截获。因为您是这样编写js的,所以会发生正常的按钮单击操作。这两种情况都应该得到处理,而且都应该起作用——这就是javascript的低调使用

至于附加到文档,不是完全没有。浏览器会收到一堆代码,如果可以,它会在当前文档的上下文中运行这些代码。然后,它不会将代码保存到任何地方,当它完成时,它将被丢弃,文档将保持在脚本留下的任何状态

渲染与响应的关系如何?它们是并排使用的,还是一个优于另一个

render html:
render js:
render json:

respond_to |format| do
  format.html
  format.js
  format.json
end
respond\u to
允许您根据用户提出请求的方式来控制对用户的响应方式。在上面的UJS示例中,这允许您拥有一个响应HTML和AJAX请求的方法,但知道其中的区别,并且可以对其响应进行任何需要的更改

例如:

respond_to |format| do
  format.html # will by default render the view with this actions name
  format.json do # lets pass back the object in json format
    render @object.to_json
  end
end

这些都是作为介绍性的答案,非常简单,我建议进一步阅读每一个主题

我实际上指的是rails/jQueryUJS及其带来的魔力。“至于附加到文档,不完全是。浏览器会收到一堆代码,如果可以的话,它会在当前文档的上下文中运行这些代码。它不会将代码保存到任何地方,当代码完成时,它将被丢弃,文档将保持在脚本留下的任何状态。”-我可以稍后使用js响应中定义的函数吗?你知道我在哪里可以读到更多关于这个话题的内容吗?(浏览器对js响应的作用)我实际上指的是rails/jQueryUJS及其带来的魔力。“至于附加到文档,不完全是。浏览器会收到一堆代码,如果可以的话,它会在当前文档的上下文中运行这些代码。它不会将代码保存到任何地方,当代码完成时,它将被丢弃,文档将保持在脚本留下的任何状态。”-我可以稍后使用js响应中定义的函数吗?你知道我在哪里可以读到更多关于这个话题的内容吗?(浏览器如何处理js响应)