仅在用户登录时运行JavaScript函数 - Django

时间:2013-11-01 19:00:39

标签: javascript django

所以我有一个函数来检查用户的邮箱和在它之后定义的设置此函数频率的变量。但是,如果用户甚至没有登录到网站,我不希望该功能发送不必要的请求。在哪里/如何将if user.is_authenticated参数传递给此代码以进行检查?

function checkMail() { // Checks for new mail in user's inbox
$.ajax({
   url: "/checkMail/",
   type: "POST",
   success: function(data) {
            obj = JSON.parse(data);
            if(!obj.read){
                    $('#mailsquare').css('background-color', '#A80000');
                    $('.dropdown-menu').prepend('<li class="message" id="{{item.id}}">'+obj.newest.substring(0,30)+'</li>');
            } else {
                    $('#mailsquare').css('background-color', '#1b1b1b');
            }
   },
   error: function(xhr, status, error) { console.log(xhr.status); console.log(xhr.responseText); console.log(status); console.log(error); }
   });
}
var interval = setInterval(checkMail, 10000);  // Set interval for frequency of mail checks

1 个答案:

答案 0 :(得分:4)

在您的实际Django模板中,您可以将一个JavaScript块包装在模板标记中,以检查用户是否已登录。

{% if user.is_authenticated %}
    <script type="text/javascript">
         setInterval(checkMail, 10000);
     </script>
{% endif %}