我正在执行一个 ajax 调用(使用 JQuery),Rails Controller 需要返回一个部分,以便我可以在 ajax 调用后更新页面。在我看来,有两种方法可以做到这一点。在 Controller 中,您过滤 ajax 调用(request.xhr?)并返回:
一个 .js.erb,作为 Ajax 调用本身的一部分在客户端执行(数据类型:脚本)。这个 .js.erb 文件操作 DOM 并注入(inject)部分的 html,如下所示:
$('#content').html("<%= escape_JavaScript(render :partial => 'success') %>");
部分 ((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/