AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML)可以使网页实现异步更新,就是不重新加载整个网页的情况下,对网页的某部分进行更新(局部刷新),用于创建快速交互式网页应用的网页开发技术。JQuery的Ajax异步请求好几种,下面分别来介绍一下。
1.JQuery.ajax(url,[seetings])通过http请求加载远程数据,这是最底层的ajax实现,JQuery.get和.post都是它的高层实现,返回其创建的XMLHttpRequest对象。
url:一个用来包含发送请求的URL字符串。
setttings:AJAX请求设置。
常用设置:
async:默认为异步请求true,同步请求设置为false,同步请求将锁住浏览器,其他操作必须等待请求完成才可操作
beforeSend(XMLHttpRequest):发送请求前可修改XMLHttpRequest对象的函数。
complete(XMLHttpRequest,textStatus):请求完成后回调函数。
dataType:预期服务器返回的数据类型。xml html script json text。
success:请求成功后回调函数。这个方法有两个参数:服务器返回数据,返回状态
error:请求失败时将调用此方法。这个方法有三个参数:XMLHttpRequest 对象,错误信息,捕获的错误对象。
function changeState(userid,state){
$.ajax({
type:"post", //请求类型
url:"${pageContext.request.contextPath}/sysuser/changeState.action",//请求路径
data:"userId="+userid+"&userState="+state,//传递参数
dataType:"text",//预期服务器返回类型
//如果成功,回调函数
success:function(data){
var $stateSpan=$("#stateSpan"+userid);
var $operateSpan=$("#operateSpan"+userid);
if(data == "1"){
//状态应该显示为:可用
$stateSpan.html("<font color='green'>可用</font>");
$operateSpan.html("<a href='javascript:changeState("+userid+",0)'>禁用</a>");
}else {
//状态应该显示为:不可用
$stateSpan.html("<font color='red'>不可用</font>");
$operateSpan.html("<a href='javascript:changeState("+userid+",1)'>启用</a>");
}
}
});
Sevlet层:
HttpServletResponse response=ServletActionContext.getResponse();
response.setContentType("text/html;charset=UTF-8");
response.getWriter().write(data);
2.load(url,[data],[callback]载入远程HTML文件代码并插入到DOM中,默认使用get方式,传递附加参数时自动转为post请求方式。
url:待装入 HTML 网页网址。
data:发送至服务器的 key/value 数据。在jQuery 1.3中也可以接受一个字符串了。
callback:载入成功时回调函数。
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript" src="../js/jquery-1.11.3.js"></script>
<script>
//文档加载后激活函数
$(document).ready(function(){
//button按钮点击后触发
$("#btn").click(function(){
//id为result的加载hello.html页面中的内容和状态
$("#result").load("hello.html",function(responseText,textStatus){
$("#display").append("<hr>responseText:"+responseText);
$("#display").append("<hr>textStatus:"+textStatus);
});
});
});
</script>
</head>
<body>
<input type="button" value="测试" id="btn" />
<h2>显示的内容如下:</h2>
<div id="result"></div>
<h2>结果:</h2>
<div id="display"></div>
</body>
</html>
结果如下:
3.JQuery.get(url,[data],[callbak])使用get方式进行异步请求,通过http get请求载入信息,这是一个简单的get请求功能以取代复杂的$.ajax,只有请求成功时才调用回调函数。
url:待载入页面的URL地址
data:待发送 Key/value 参数。
callback:载入成功时回调函数。
type:返回内容格式,xml, html, script, json, text, _default。
get请求基本上和ajax差不多,就是封装的比较简单易用而已。
<script>
//文档加载后激活函数
$(document).ready(function(){
//button按钮点击后触发
$("#btn").click(function(){
//get方法请求
$.get("${pageContext.request.contextPath}/checkUserName.action",
{username:val},function(data){
$("#display").append("<hr>data:"+data);
});
});
});
</script>
4.JQuery.post(url,[data],[callbak])
post请求和get请求差不多,Get是向服务器发索取数据的一种请求,而Post是向服务器提交数据的一种请求。这个不详细写了。
小结:JQuery的AJAX请求时我们特别常用的异步请求,可能知识点当下理解了,但是还是需要在使用的过程中不断应用实践,加油吧,少年。