Ajax 概述
1.什么是同步,什么是异步
同步现象: 客户端发送请求到服务器端,当服务器返回响应之前.客户端都处于等待卡死状态
异步现象:客户端发送请求到服务器端,无论服务器是否返回响应,客户端都可以随意做其他事情,不会被卡死
- Ajax 的运行原理
页面发起请求,会将请求发送给浏览器内核中的Ajax引擎. Ajax引擎会提交请求到客户端在这段时间里,客户端可以任意进行任意操作.直到服务器端将数据返回始Ajx引擎后会教发你设置的事件从而执行自定义的逻确代研完成某种页面功能
3 Jquery的Ajax技术(重点)
jquery是一个优秀的js框架,自然对js原生的ajax进行了封装,封装后的ajax的操作方法更简洁,功能更强大,与ajax操作相关的jquery方法有如下几种,但开发中经常使用的有三种
- $.get(ur, (datal. (llbaka [type)2) sposturt (datal, allbak type)
- $.post(ur, (datal. (llbaka [type)2) sposturt (datal, allbak type)
其中:
url:代表请求的服务器端地址
data :代表请求服务最端的数据(可以是key=value形式也可以是json格式)callback :表示服务器端成功应所触发的函数(只有正常成功返回才执行)type :表示服务器端返回的数据类型(jquery会根据指定的类型自动类型转换)
常用的返回类型: text. json、 html等
3) $.ajax( {option:valuel.option2:xlue2-.):
常用的option有如下:
async :是否异步,默认是true代表异步
data :发送到服务器的参数,建议使用json格式
dataType:服务器端返回的数据类型.常用text和jsonsuces :成功响应执行的函数,对应的类型是fnctin类型type:请求方式, POST/GETurl:请求服务器端地址
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Ajax请求方式</title>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script type="text/javascript">
function f1() {
$.get("/Ajax/AjaxGetServlet",//url地址
{ "name":"小明","age":23 },//请求参数
function (date) {//执行成功后回调函数
alert(date);
},
"text" //返回的类型
);
}
function f2() {
$.get("/Ajax/AjaxGetServlet",//url地址
{ "name":"小明","age":23 },//请求参数
function (date) {//执行成功后回调函数
alert(date);
},
"text" //返回的类型
);
}
function f3() {
$.ajax( url:"/Ajax/AjaxGetServlet",//url地址
asnyc:true, //是否异步
type:"post",
data:{ "name":"小明","age":23 }//请求参数
success:
function (data) {//执行成功后回调函数
alert(data.name);
},
error:function(){
alert("error");
},
dataType:"json"
);
}
</script>
</head>
<body>
<input type="button" value="get异步服务服务器" onclick="f1()"/><span id="span1"></span>
<input type="button" value="post异步服务服务器" onclick="f2()"/><span id="span2"></span>
<input type="button" value="ajax异步服务服务器" onclick="f3()"/><span id="span3"></span>
</body>
</html>
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class AjaxGetServlet
*/
@WebServlet("/Ajax/AjaxGetServlet")
public class AjaxGetServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public AjaxGetServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("name");
String name=request.getParameter("name");
String age=request.getParameter("age");
System.out.println(name);
response.getWriter().write("{\"name\":\"tom\"}");
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}