AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步Javascript和XML”。即使用Javascript语言与服务器进行异步交互,传输的数据为XML(当然,传输的数据不只是XML)。
- 同步交互:客户端发出一个请求后,需要等待服务器响应结束后,才能发出第二个请求;
- 异步交互:客户端发出一个请求后,无需等待服务器响应结束,就可以发出第二个请求。
AJAX除了异步的特点外,还有一个就是:浏览器页面局部刷新;(这一特点给用户的感受是在不知不觉中完成请求和响应过程)
js实现两个数的和:
///模板方面/////
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
{% csrf_token %}
<p>输入<input type="text" id="t1"></p>
<p>输入<input type="text" id="t2"></p>
<p><button class="btn">计算和</button><span class="sum"></span></p>
</body>
<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.js "></script>
<script>
$('.btn').click(function () {
$.ajax({
url:'/sum2/',
type:"POST",
data:({
csrfmiddlewaretoken:$("[name='csrfmiddlewaretoken']").val(),
t1:$('#t1').val(),
t2:$('#t2').val()
}),
success:function (sum) {
var sum=JSON.parse(sum);
$('.sum').html(sum)
}
})
})
</script>
</html>
///视图方面/////
def sum(request):
# t1=request.GET.get('t1')
# t2=request.GET.get('t2')
# print(t1)
return render(request,'sum.html')
def sum2(request):
t1=request.GET.get('t1')
t2=request.GET.get('t2')
return HttpResponse(json.dumps(int(t1)+int(t2)))
用Ajax实现表的删除操作:
///////模板方面/////////
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h3>实现计算器的功能</h3>
<div class="bs-example" data-example-id="contextual-table">
<table class="table">
<thead>
<tr>
<th>序号</th>
<th>用户名</th>
<th>密码</th>
</tr>
</thead>
<tbody>
{% for user in user_list %}
<tr class="active">
<td class="id">{{ user.id }}</td>
<td>{{ user.username }}</td>
<td>{{ user.password }}</td>
<td><button>删除</button></td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</body>
<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.js "></script>
<script>
$('button').click(function () {
$.ajax({
url:'/list_ajax/',
type:'get',
data:({
id:$(this).parent().parent().children().first().text()
}),
success:function (id) {
var id=JSON.parse(id);
console.log($(this));
$('.id').each(function () {
if($(this).html()==id){
$(this).parent().remove()
}
})
{# $(this).parent().parent().remove()#}
}
})
})
</script>
</html>
///////视图方面/////////
def list(request):
user_list=models.UserInfo.objects.all()
return render(request,'list.html',{'user_list':user_list})
def list_ajax(request):
id=request.GET.get('id')
models.UserInfo.objects.filter(id=id).delete()
return HttpResponse(json.dumps(id))