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

标签 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

最佳答案

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

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

关于javascript - 仅当用户登录时运行 JavaScript 函数 - Django,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19733568/

相关文章:

javascript - 保存一个 JavaScript 对象?

javascript - Three.js - 如何反序列化 geometry.toJSON()? (geometry.fromJSON 在哪里?)

mysql - 配置 Django 以使用远程 mysql 服务器?

python - Django 使用 'python manage.py' runserver 代替 Gunicorn

django - Heroku 不断删除在线添加的数据

javascript - 从本地网络访问 Gulpjs Web 服务器

JavaScript/ReactJS : Show results from backend in a list

c# - 使用 javascript 填充标签值。回发后代码后面的标签为空?

python - django mssql 安装程序 : error initializing DB

django - 无法通过通用类 View 将 'slug' 字段传递到 URL 中