我已经实现了未读计数的自动重新加载 它每15秒返回一条未读的消息数 但即使用户未登录,它也会一样。
我怎么能阻止这个?我想只在用户登录时才这样做。
我喜欢这个
jQuery(document).ready(function () {
refreshPartial();
setInterval(refreshingPartial, 15000)
});
function refreshingPartial() {
$.ajax({
url: "/messages/refreshing_partial",
type: "GET",
dataType: "script",
});
}
答案 0 :(得分:3)
使用内联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 %>
OR
如果用户登录并控制该类,则将一个类添加到正文中。
<body class="<%= "logged-in" if current_user %>">
</body>
并改变你的js一点点
jQuery(document).ready(function () {
if ($("body").is(".signed-in")) {
refreshPartial();
setInterval(refreshingPartial, 15000)
};
});
答案 1 :(得分:0)
refreshPartial
js脚本只有在用户登录时才会呈现。以下应该做的诀窍:
<script type="text/javascript">
$(document).ready(function () {
<% if is_user_signed_in %>
refreshPartial();
setInterval(refreshingPartial, 15000);
function refreshingPartial() {
$.ajax({
url: "/messages/refreshing_partial",
type: "GET",
dataType: "script",
});
}
<% end %>
});
</script>