ruby-on-rails - 如何仅在登录时运行 setInterval ajax 调用?

标签 ruby-on-rails ruby-on-rails-3 jquery

我已经实现了未读计数的自动重新加载。
它每 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/

相关文章:

ruby-on-rails - 在 Rails 4 中发送带有远程 true 的表单

ruby-on-rails - 如何在 has_many 的情况下通过 : association? 验证关联记录的存在

ruby-on-rails - NET::FTP ruby​​ on rails vist 父目录?

ruby-on-rails - Rails 3 级深度嵌套资源

ruby-on-rails - 使用acts_as_taggable_on 进行搜索

Jquery:选择调用该函数的元素

ruby-on-rails - 在 Rails 中按字母顺序输出选择列表?

ruby-on-rails - 为什么添加这样的 Rails 中间件会导致无休止的重定向?

javascript - 使用jquery从数组和html列表中删除项目

javascript - $.getScript 第二次可以工作吗?