您的位置:首页 > Web前端 > JQuery

Js原生Ajax和Jquery的Ajax

2017-05-30 13:58 459 查看

1.什么是同步,什么是异步

同步现象:客户端发送请求到服务器端,当服务器返回响应之前,客户端都处于等待 卡死状态

异步现象:客户端发送请求到服务器端,无论服务器是否返回响应,客户端都可以随 意做其他事情,不会被卡死

 

2.Ajax的运行原

3.页面发起请求,会将请求发送给浏览器内核中的Ajax理

引擎,Ajax引擎会提交请求到 服务器端,在这段时间里,客户端可以任意进行任意操作,直到服务器端将数据返回给Ajax引擎后,会触发你设置的事件,从而执行自定义的js逻辑代码完成某种页面1 功能。

我们先来看一下Js原生Ajax,因为这是底层实现,当学完了Js原生Ajax后再来看Jquery的Ajax就是So easy了!

代码走起:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<script type="text/javascript" src="js/jquery-1.8.3.js"></script>
<script>
$(function() {
$("#one").click(function() {
/* 1)创建Ajax引擎对象
2)为Ajax引擎对象绑定监听(监听服务器已将数据响应给引擎)
3)绑定提交地址
4)发送请求
5)接受响应数据 */

var xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("myDiv1").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","/ajax/AServlet",true);
xmlhttp.send();
})
})
</script>
<body>
<input type="submit" value="一步提交" id="one"/><div id="myDiv1"></div> <br/>
<input type="submit" value="同步提交" id="tow"/><div id="myDiv2"></div><br/>
</body>
</html>
简单的ajax入门就算是完事了,但是我们发送的数据却是格式不良好的,为此我们使用json来保证我们传送的数据的格式良好。

j

一、Json数据格式(重要)

 

json是一种与语言无关的数据交换的格式,作用:

使用ajax进行前后台数据交换

移动端与服务端的数据交换

 

1.Json的格式与解析

json有两种格式:

1)对象格式:{"key1":obj,"key2":obj,"key3":obj...}

2)数组/集合格式:[obj,obj,obj...]

 
例如:user对象 用json数据格式表示
{"username":"zhangsan","age":28,"password":"123","addr":"北京"}
 
List<Product> 用json数据格式表示
[{"pid":"10","pname":"小米4C"},{},{}]
 
注意:对象格式和数组格式可以互相嵌套
 
注意:json的key是字符串  jaon的value是Object
 
json的解析:
json是js的原生内容,也就意味着js可以直接取出json对象中的数据
 
 

2.Json的转换插件

 

将java的对象或集合转成json形式字符串

 

json的转换插件是通过java的一些工具,直接将java对象或集合转换成json字符串。

常用的json转换工具有如下几种:

1)jsonlib

2)Gson:google

3)fastjson:阿里巴巴
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息