1

所以我有一个检查用户邮箱的函数和一个在它之后定义的变量,用于设置该函数的频率。但是,如果用户甚至没有登录网站,我不希望该功能发送不必要的请求。我将在哪里/如何将 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
4

1 回答 1

5

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

{% if user.is_authenticated %}
    <script type="text/javascript">
         setInterval(checkMail, 10000);
     </script>
{% endif %}
于 2013-11-01T19:15:33.773 回答