-
概念: ASynchronous JavaScript And XML 异步的JavaScript 和 XML
1. 异步和同步:客户端和服务器端相互通信的基础上
* 客户端必须等待服务器端的响应。在等待的期间客户端不能做其他操作。
* 客户端不需要等待服务器端的响应。在服务器处理请求的过程中,客户端可以进行其他的操作。Ajax 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。 [1] 通过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。 传统的网页(不使用 Ajax)如果需要更新内容,必须重载整个网页页面。 提升用户的体验
-
实现方式:
- 原生的JS实现方式(了解)
- JQeury实现方式
- $.ajax()
-
语法: . a j a x ( 键 值 对 ) ; / / 使 用 .ajax({键值对}); //使用 .ajax(键值对);//使用.ajax()发送异步请求
$.ajax({
url:“ajaxServlet1111” , // 请求路径
type:“POST” , //请求方式
//data: “username=jack&age=23”,//请求参数
data:{“username”:“jack”,“age”:23},
success:function (data) {
alert(data);
},//响应成功后的回调函数
error:function () {
alert(“出错啦…”)
},//表示如果请求响应出现错误,会执行的回调函数dataType:"text"//设置接受到的响应数据的格式
});
-
- $.get():发送get请求
- 语法:$.get(url, [data], [callback])
- 参数:
- url:请求路径
- data:请求参数
- callback:回调函数
例子:
String name = request.getParameter(“username”);
System.out.println(name);
//相应格式为Json
response.setContentType(“application/json;charset=utf-8”);
Map<String, Object> map = new HashMap<>();
- 参数:
- 语法:$.get(url, [data], [callback])
- $.ajax()
if (“tom”.equals(name)) {
// response.getWriter().print(“1”);
System.out.println(“1111”);
map.put(“userExsit”, true);
map.put(“msg”, “存在”);
} else{
System.out.println(“2222”);
map.put(“userExsit”, false);
map.put(“msg”, “可用”);
// response.getWriter().print(“2”);
}
//定义json对象
ObjectMapper mapper = new ObjectMapper();
//把map集合转化为json字符串
mapper.writeValue(response.getWriter(), map);
}
-
<script type="text/javascript">
$(function () {
$("#username").blur(function () {
var username = $(this).val();
$.get("findUserNameSerlvet", {username: username}, function (data) {
alert(data);
var span = $("#user_msg");
if (data.userExsit) {
span.css("color", "red");
span.html(data.msg);
} else {
span.css("color", "green");
span.html(data.msg);
}
})
})
})
</script>
3. $.post():发送post请求
* 语法:$.post(url, [data], [callback])
* 参数:
* url:请求路径
* data:请求参数
* callback:回调函数