Ajax

18 篇文章 0 订阅

  window.location.reload()#局部刷新网页

Ajax 即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML),是指一种创建交互式网页应用的网页开发技术。
Ajax = 异步 JavaScript 和 XML(标准通用标记语言的子集)。
Ajax 是一种用于创建快速动态网页的技术。
Ajax 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。[1] 
通过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。
ajax标准的异步请求 if request.is_ajax():判断是否为ajax
<script src="{% static 'js/jquery.min.js' %}"></script>
$(function () {})=window.onload加载完成后执行
$('#dian').get(0)得到原生js元素   
get请求:$.get(url,data,function (){})url地址  data字典放参数(要先创建data={})  function 回调函数
 $.post()post请求
import json   
result = {'a':'ok'}
 result = json.dumps(result)将python字典转化为json字典
json.loads()将json字典转换为python字典
$('#zan').text()前端获取标签里面的值text(值)设置值  
.html获取值于.text相同但.html可以设置标签 val()获取表单标签的值

setTimeout(function () { window.location.href='/' },5000)设置5秒自动跳转

// 异步  
var  email = "test@ptmind.com";  
console.log(1);  
jQuery.ajax({  
    url: "/invite/sendEmailAjax.pt",  
    type: "post",  
    dataType: "text",  
    async: true,  同步将次改为false    // 结果:1->2->3  
    data: "inviteEmails="+email,  
    success: function(data){  
        console.log(2);  
    }  
});  
console.log(3);  (alert(temp); 
// 结果:1->3->2  

关于点击收藏与不收藏的ajax

attr 和 prop 两种操作标签属性的方法,区别:attr是用来取或者设置自定义的属性   prop是用来取或者设置标签自带的属性

$(function () {
   $('#love').click(function () {
       {#  attr 和 prop 两种操作标签属性的方法,#}
       {#区别:attr是用来取或者设置自定义的属性#}
       {#      prop是用来取或者设置标签自带的属性#}
        var lovetype = $('#love').attr('data-fav-type');
        var loveid = {{ org.id }}
       $.ajax({
           type:'GET',
           url:'{% url 'operations:user_love' %}',
           data:{
               lovetype:lovetype,
               loveid:loveid
           },
           success:function (callback) {
                if(callback.status == 'ok'){
                    $('#love').text(callback.msg)
                    window.location.reload()#局部刷新网页
                }else{
                    alert(callback.msg)
                }
           }

       })
   })
});

在python中view逻辑中对应的ajax收藏代码

def user_love(request):
    lovetype = request.GET.get('lovetype','')
    loveid = request.GET.get('loveid', '')
    #当类型和id同时存在才有可能性继续
    if lovetype and loveid:
        #需要在表当中去查找以前是否有这个收藏的对象
        love = UserLoveInfo.objects.filter(userinfo=request.user,love_type=int(lovetype),love_id=int(loveid))
        #如果表里面有这个收藏对象执行以下if语句块
        if love:
            #确定有这个对象,我们需要通过这个对象的收藏状态来设定收藏和取消收藏
            if love[0].love_status:
                love[0].love_status = False
                love[0].save()
                return JsonResponse({'status':'ok','msg':'收藏'})
            else:
                love[0].love_status = True
                love[0].save()
                return JsonResponse({'status': 'ok', 'msg': '取消收藏'})
        #如果表里面没有这个收藏对象执行以下else语句块
        else:
            a = UserLoveInfo()
            a.userinfo = request.user
            a.love_status = True
            a.love_type = int(lovetype)
            a.love_id = int(loveid)
            a.save()
            return JsonResponse({'status': 'ok', 'msg': '取消收藏'})
    else:
        return JsonResponse({'status': 'fail', 'msg': '收藏失败'})

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值