我已经实现了未读计数的自动重新加载。
它每 15 秒返回未读消息的数量。
但即使用户未登录,它也会执行相同的操作。
我怎样才能阻止这个?我只想在用户登录时执行此操作。
我有这样的js
jQuery(document).ready(function () {
refreshPartial();
setInterval(refreshingPartial, 15000)
});
function refreshingPartial() {
$.ajax({
url: "/messages/refreshing_partial",
type: "GET",
dataType: "script",
});
}
最佳答案
使用内联js
<% if current_user %>
<%= javascript_tag do %>
jQuery(document).ready(function () {
refreshPartial();
setInterval(refreshingPartial, 15000)
});
function refreshingPartial() {
$.ajax({
url: "/messages/refreshing_partial",
type: "GET",
dataType: "script",
});
}
<% end %>
<% end %>
或者
如果用户登录并控制该类,则将类添加到正文。
<body class="<%= "logged-in" if current_user %>">
</body>
稍微改变一下你的js
jQuery(document).ready(function () {
if ($("body").is(".signed-in")) {
refreshPartial();
setInterval(refreshingPartial, 15000)
};
});
关于ruby-on-rails - 如何仅在登录时运行 setInterval ajax 调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14031316/