Ajax

1.AJAX

[1] AJAX简介

全称: Asynchronous JavaScript And XML

异步的JS和XML

AJAX实际上就是来使用JS向服务器发送请求的,

服务器返回响应信息以后,我们在通过DOM将响应信息反映到页面中。

XML指的是响应信息可以以xml的形式返回

目前已经很少使用XML作为响应格式,更多的是选择JSON作为响应的格式。

因为XML的存储和传输性能较差

AJAX主要就是用来提升用户体验的

AJAX的操作都是通过一个叫做XMLHttpRequest的对象来进行

[2] 同步和异步

同步:所谓同步就是,向服务器发送请求后,浏览器会刷新整个页面。

异步:向服务器发送请求后,不是刷新整个页面,而是刷新页面中的一部分。

[3] XMLHttpRequest对象

这个对象中封装发送给服务器的请求报文,同时我们也通过该对象来接收服务器发回的响应

如何获取这个对象:

大部浏览器支持的方式(IE7以上的浏览器)

var xhr = new XMLHttpRequest();

IE6以下的浏览器

var xhr = new ActiveXObject(“Msxml2.XMLHTTP”);

IE5.5以下的浏览器

var xhr = new ActiveXObject(“Microsoft.XMLHTTP”);

[4] 使用步骤

1.获取XMLHttpRequest对象

var xhr = new XMLHttpRequest();

2.设置请求信息(url地址、请求方式、请求参数)

xhr.open(“get”, “/15_WEB_AJAX/AjaxServlet?t=”+Math.random());

{通过添加一个变化的查询字符串,解决get请求的缓存问题}

3.发送请求

xhr.send();

send()方法可以传递参数,

4.接收响应信息

xhr.onreadystatechange = function(){

if(xhr.readyState == 4 && xhr.status == 200){

var text = xhr.responseText;

alert(text);

}

};

注意:

发送post请求时,我们open方法的第一个参数要设置为post,

同时还要设置一个请求头,来让服务器端能够通过参数名获取参数值:

xhr.setRequestHeader(“Content-Type”, “application/x-www-form-urlencoded”);

发送post请求时没有缓存问题,所以我们开发时没有特殊情况,一般发送post请求

[5] 响应数据的格式

我们之前的操作都是接受的一个纯文本内容

但是如果我们想返回一个比较复杂的数据,使用纯文本不太方便

例如:

我们程序中有一个user对象,user对象有如下信息:

name:唐僧,age:16,gender:男

我们也可以给AJAX响应一个XML格式的数据(理解)

<user>

<name>唐僧</name>

<age>16</age>

<gender></gender>

</user>

JSON格式的数据

{"name":"孙悟空",
 "age":18,"
  gender":""}

目前来说我们的AJAX已经很少使用XML作为响应数据了,

因为XML解析起来比较麻烦,而且解析效率和传输的效率不是很高

我们使用AJAX时主要使用JSON数据作为响应内容。

2.JSON (掌握)

[1] JSON简介

JSON全称 JavaScript Object Notation

JSON实际上就是一种数据的格式,作用和XML类似,可以在不同的语言平台之间传输数据

JSON占用空间比XML要小的多,解析性能要比XML快的多,大概快个30%

所以我们在使用AJAX时JSON是首选的格式

XML比较方便阅读,但是JSON性能更好

所以开发中一般使用XML作为配置文件

[2] JSON的格式

对象:{“属性名1”:属性值1,
“属性名2”:属性值2,
“属性名3”:属性值3}

数组:[属性值1,属性值2,属性值3]

JSON中可以使用的属性值:

1.字符串

2.数字

3.布尔值

4.null

5.对象

6.数组

[3] JSON的转换:

在JS中:

JSON 转 对象

var obj = JSON.parse(JSON字符串)

对象 转 JSON

var str = JSON.stringify(对象)

在Java中:

我们需要使用第三方的jar包:

json-lib :使用麻烦,解析性能差

Jackson : 使用方便,性能最好

Gson :使用简单,性能和Jackson稍微差一些

我们使用Gson来转换JSON和对象

使用步骤:

1.导入jar包gson-2.2.4.jar

2.创建Gson对象

Gson gson = new Gson();

3.使用方法

对象 –> JSON

gson.toJson(Object obj);

JSON –> 对象:{

gson.fromJson(json字符串,对象的类型);

3.通过jQuery实现AJAX

[1] post()方法

语法:$.post(url, [data], [callback], [type])

url : 要发送的请求的地址

data : 要发送的请求参数,一般设置一个JSON对象

callback : 需要指定一个函数作为参数,该函数会在AJAX收到响应以后被调用

同时会将响应的内容作为函数的参数一起返回

type :响应数据类型,可选值 xml, html, script, json, text


[2] get()方法

$.get(url, [data], [callback], [type])

url : 要发送的请求的地址

data : 要发送的请求参数,一般设置一个JSON对象

callback : 需要指定一个函数作为参数,该函数会在AJAX收到响应以后被调用

同时会将响应的内容作为函数的参数一起返回

type :响应数据类型,可选值 xml, html, script, json, text

 $(function(){
    $(".cart_btn").click(function(){
        var bookId=this.id;
        var url="${pageContext.request.contextPath}/client/CartServlet";
        var params={
                "method":"addBook",
                "bookId":bookId
        };
         $.post(url,params,function(data){
            var totalCount = data.totalCount;
            var title= data.title;
               .......
        },"json");
    });
});

[3] getJSON()方法

- getJSON方法和get方法类似,只不过getJSON方法的type只能是json,默认就是接受一个JSON对象作为返回值。

- 语法:$.getJSON(url, [data], [callback])
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值