django 使用messages发送到前端alert解决阻断问题

本文讲述了在Django开发中遇到的一个问题,即使用alert弹窗发送message时导致前端进程阻塞,影响页面渲染。通过调整JS代码的位置,将alert触发放在window.onload中,解决了阻塞问题,确保页面正常渲染。
摘要由CSDN通过智能技术生成

最近是用django开发前端发现问题,使用message发送到前端的时候,需要一个弹出层,但使用alert总是会阻断前端的进程,这样就导致,页面效果下降,在网上找了很多办法,都是使用这个阻塞进程,没找到怎么不让它阻塞的. 

最后总结是因为在执行js代码的位置有关系,每次都会加载那里,然后就会阻断,页面才会继续向下渲染. 

#这是部分的函数代码
  username = request.GET.get('name1')
    new_id=request.GET.get('new_id') #邀请码的值
    print(username)
    print(new_id)
    if len(username) !=0 and len(new_id) != 0:

        cursor = connection.cursor()
        cursor.execute('select * from huod where uname="%s"' % (username))   #查询新玩家是否合法,
        user = list(cursor.fetchall())
        if user and user[0][1] > time:
             #判断是否已经领取过了
             if  len(user[0][2])==0 :
                #新用户存在,判断邀请码合法性
                cursor.execute('select uname from huod where ujdk="%s"' % (new_id))
                old_user_list=cursor.fetchall()
                old_user=old_user_list[0][0]
                print(old_user)
                # print("邀请他的老用户:"+ old_user)
                if old_user:
                    print("ujdk存在")
                    cursor.execute('select num from huod where uname="%s"' % (old_user))
                    old_user_num = cursor.fetchall()
                    old_num = list(old_user_num)[0][0]
                    new_num = old_num + 1
                    print(new_num)
                    #统计老玩家的邀请数量,给他
                    cursor.execute('update huod set num=%s where uname="%s"' % (new_num,old_user))
                    cursor.execute('update huod set ujdk=8 where uname="%s"' % (username))
                    cursor.close()
                    title = '恭喜您参加活动成功!祝您游戏愉快!'
                    messages.success(request, title)
                    return render(request, 'test.html')
                else:
                 title = '邀请码不合法,请重新输入!'
                 messages.success(request, title)
                 return render(request, 'test.html')
             else:
                 title = '您已经参加过该活动了哦!'
                 messages.success(request, title)
                 return render(request, 'test.html')
        else:
            title = '该用户不存在或已经是老玩家了,请重新输入'
            messages.success(request, title)
            return render(request, 'test.html')
    else:
        title = '请输入用户名和邀请码'
        messages.success(request, title)
        return render(request,'test.html')

#这里就是需要将提示信息发给前端用户.

最后就是修改前端js代码和他的位置: 

#将触发的这一段代码,放到了html页面的最下面最后在进行加载,调用
{% if messages %}
<script>
window.onload=function(){
					{% for msg in messages %}
						alert('{{msg.message}}');
					{% endfor  %}
}
</script>
{%  endif %}

再次执行后效果:可以看到后面是有背景了,渲染了,而不是白色阻断的效果.

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吴爃

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值