AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步Javascript和XML”。即使用Javascript语言与服务器进行异步交互,传输的数据为XML(当然,传输的数据不只是XML)。
- 同步交互:客户端发出一个请求后,需要等待服务器响应结束后,才能发出第二个请求;
- 异步交互:客户端发出一个请求后,无需等待服务器响应结束,就可以发出第二个请求。
AJAX除了异步的特点外,还有一个就是:浏览器页面局部刷新;(这一特点给用户的感受是在不知不觉中完成请求和响应过程)
jqyery实现局部刷新更加高效:
ajax实现的是异步交互:浏览器发送一个请求后,不用等服务器响应就可以发送第二个请求,更加高效(eg:qq发送消息就属于异步通信)====偷偷的想后端发请求
json对象都是一些特殊的字符串,用双引号抱起来
为什么要用json:多种语言之间的交互
在前端要向后台发送数据,最好是发一个json类型的,然后通过反解得到json字符串:
在python中:一个字符串经过dumps之后可以序列化成json字符串;一个json字符串通过loads反序列化可以得到python的字符串;
在jQuery中:一个字符串可以通过stringfy的方法的到json的字符串;通过parse的方法可以拿到jQuery的字符串;
前端数据===stringfy===>json字符串=====传到后端======>loads 反序列化的到python 数据
后端数据===dumps====>json字符串====传到前端======>parse 发序列化得到前端数据;
请求方式:POST与GET请求
<script> $(".send_ajax").click(function () { $.ajax({ url:"/get_ajax/", #请求路径 type:"GET", #请求方式 data:{ username:"Mr_zhang", password:123 }, #请求数据 success:function (data) { alert(data) #成功之后后端返回的数据 } }) }) </script>
后端获取前端的数据:
def get_ajax(request): username = request.GET.get("username") #获取到前端的数据 password = request.GET.get("password") print("======",username,"======",password) return HttpResponse("egon is crying") #返回给前端的数据
PS:删除无刷新:
先获取到当前点击的ID值,通过ajax传输到后台,后台通过串过来的ID值在数据库中查找,然后删除,由于是无刷新技术,所以只是在后端删除了,前端看不到结果:不过数据库的确是删除了的;药箱看到结果,在ajax中的success里面写jQuery代码就好了(先找到当前点击的,找他爸爸的爸爸,删除第一个,此时前端也没了,不过页面没有刷新)
增删改查无刷新原理和这个类似,只是代码的细节问题