【发布时间】:2017-10-03 20:50:55
【问题描述】:
我正在开发一个 Rails 应用程序,该应用程序在 application.html.erb 的 head 中呈现 JavaScript,其中包含以下内容:
<head>
...
<script><%= render 'certified_mail/mail_list_loader.js' %></script>
</head>
上面代码渲染的 JS 部分通过控制器的实例变量传递参数进行 AJAX 调用:
# _mail_list_loader.js.erb
document.addEventListener("turbolinks:load", function() {
$.ajax({
url: '/certified_mail/mail_list',
type: 'get',
data: {
page: <%= @page %>,
rut: <%= @rut || 'null' %>,
from: <%= @from || 'null' %>,
to: <%= @to || 'null' %>,
ids: <%= @outdated_message_ids.to_json.html_safe %>
}
});
});
由于 Turbolinks 会合并来自后续请求的 head 内容,因此每次 AJAX 调用的参数更改时,我都会在 head 中加载一个额外的 script,这会导致不需要的额外请求,如下图:
如何告诉 Turbolinks 在合并过程中不要考虑该特定脚本,这样我就可以避免那些额外的调用?
【问题讨论】:
标签: ruby-on-rails ruby ajax ruby-on-rails-5 turbolinks