Json
介绍Json之前有必要先介绍一下js对象
js对象
例如:
var student={name:“张三”,age:18,car:{brand:“宝马”,price:“30000”},infos:[{bookname:“三国”,price:19},18,true]};
Json:js对象表示法
{key:value,key:value};
value可以有很多种:
1、基本数据类型(字符串、数字、布尔)
2、数组[]
3、对象{}
如果服务器返回给浏览器的数据是js对象,浏览器用js解析会很方便。
json:js对象进行传输(HTTP(只能传输文本))
将js对象转为json字符串:var strJson=JSON.stringify(student);
将json字符串转为js对象:var student=JSON.parse(strJson);
Ajax
ajax:异步JavaScript和XML,是一种无刷新页面与服务器交互技术(页面不刷新就可以收到服务器响应的数据)
异步:不会阻塞浏览器
同步:会阻塞浏览器,因为需要等到服务器整个请求处理完,完成响应后才能做其他事情。
原来的交互
1、发送请求
2、服务器收到请求,调用对应的Servlet进行处理;Servlet处理完生成响应信息
3、浏览器收到服务器的响应数据,把之前的页面清除,展示新的数据(页面刷新)
现在的交互:(XmlHttpRequest对象)
1、XmlHttpRequest对象帮我们发送请求
2、服务器收到请求,调用对应的Servlet进行处理;Servlet处理完生成响应信息
3、XmlHttpRequest对象接收数据(浏览器感受不到数据)
创建 XMLHttpRequest 对象的语法:
variable xmlhttp=new XMLHttpRequest();
如需将请求发送到服务器,我们使用 XMLHttpRequest 对象的 open() 和 send() 方法:
xmlhttp.open("GET","test1.txt",true);
xmlhttp.send();
然后服务器返回响应,非常麻烦。
什么是Ajax:xhr对象向服务器发送请求,并收到响应数据,利用dom增删改的方式改变页面效果。
jquery-ajax
$.get()
$.get() 方法使用 HTTP GET 请求从服务器加载数据。
语法
$.get(URL,data,function(data,status,xhr),dataType)
参数
URL | 必需。规定您需要请求的 URL。 |
---|---|
data | 可选。规定连同请求发送到服务器的数据。 |
function(data,status,xhr) | 可选。规定当请求成功时运行的函数。 额外的参数: data - 包含来自请求的结果数据 status - 包含请求的状态(“success”、“notmodified”、“error”、“timeout”、“parsererror”) xhr - 包含 XMLHttpRequest 对象 |
dataType | 可选。规定预期的服务器响应的数据类型。 默认地,jQuery 会智能判断。 可能的类型: “xml” - 一个 XML 文档 “html” - HTML 作为纯文本 “text” - 纯文本字符串 “script” - 以 JavaScript 运行响应,并以纯文本返回 “json” - 以 JSON 运行响应,并以 JavaScript 对象返回 “jsonp” - 使用 JSONP 加载一个 JSON 块,将添加一个 “?callback=?” 到 URL 来规定回调 |
$.post()
. p o s t ( ) 方 法 使 用 H T T P P O S T 请 求 从 服 务 器 加 载 数 据 。 与 .post() 方法使用 HTTP POST 请求从服务器加载数据。 与 .post()方法使用HTTPPOST请求从服务器加载数据。与.get()类似。
$.ajax()
ajax() 方法用于执行 AJAX(异步 HTTP)请求。
所有的 jQuery AJAX 方法都使用 ajax() 方法。该方法通常用于其他方法不能完成的请求。
语法
$.ajax({name:value, name:value, … })
名称:值(name:value)
url | 规定发送请求的 URL。默认是当前页面。 |
---|---|
type | 规定请求的类型(GET 或 POST)。 |
data | 规定要发送到服务器的数据。 |
async | 布尔值,表示请求是否异步处理。默认是 true。 |
dataType | 预期的服务器响应的数据类型。 |
success(result,status,xhr) | 当请求成功时运行的函数。 |
error(xhr,status,error) | 如果请求失败要运行的函数。 |
beforeSend(xhr) | 发送请求前运行的函数。 |
complete(xhr,status) | 请求完成时运行的函数(在请求成功或失败之后均调用,即在 success 和 error 函数之后)。 |