我已经实现了计数未读的自动重载。
它每15秒返回未读消息的数量。
但即使用户未登录,它也会执行相同的操作。
我怎么才能阻止它呢?我只想在用户登录时执行此操作。
我有这样的js
jQuery(document).ready(function () {
refreshPartial();
setInterval(refreshingPartial, 15000)
});
function refreshingPartial() {
$.ajax({
url: "/messages/refreshing_partial",
type: "GET",
dataType: "script",
});
}发布于 2012-12-25 22:26:03
使用内联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)
};
});发布于 2012-12-25 22:29:29
只有当用户登录时,才应该呈现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>https://stackoverflow.com/questions/14031316
复制相似问题