ajax、json

面试官:你是怎么理解ajax?

<1>.ajax

1.首先先说ajax是什么:

是一种用来改善用户体验的技术,本质上是利用浏览器提供的一个
特殊对象(XMLHttpRequest对象,一般也可以称之为ajax对象)向
服务器发送异步请求;服务器返回部分数据,浏览器利用这些数据
对当前页面做部分更新;整个过程,页面无刷新,不打断用户的操作。
注:异步请求,指的是,当ajax对象发送请求时,浏览器不会销毁
当前页面,用户仍然可以对当前页面做其它操作。


2.ajax与服务器:

ajax、json_第1张图片

3.如何获得ajax对象?

ajax、json_第2张图片


4.利用ajax向服务器发送数据:

step1. 获得ajax对象
    比如   var xhr = getXhr();
step2. 调用ajax对象的方法,发送请求
    方式一 get请求
    xhr.open('get','check.do?adminCode=king',true);
    xhr.onreadystatechange = f1;
    xhr.send(null);
    注:
        true: 异步 (浏览器不会销毁当前页面,用户仍然可以
                对当前页面做其它操作)
        false:同步 (浏览器不会销毁当前页面,但是会锁定当前
                页面,用户不能够对当前页面做任何操作)。
    方式二 post请求
step3. 编写服务器端的程序
    注:不需要返回完整的页面,只需要返回部分数据。
step4. 编写事件处理函数
    if(xhr.readyState == 4 && 
        xhr.status == 200){
        //ajax对象已经获得了服务器返回的所有数据,
        //而且服务器处理正确。
        var txt = xhr.responseText;
        页面更新...
    }


以上是js支持的ajax,下面是jQuery对ajax的支持,更为简便。



————————————————————————————————————————————————————

5.jQuery对ajax的支持:

用法:
    $.ajax({});
注:{}是一个对象,其属性用来控制ajax对象如何向服务器
    发送请求,常见的属性如下。
    url: 请求地址(与controller的地址一样)
    type: 请求类型
    data: 请求参数(可以是请求字符串形式,比如
        "adminCode=king&age=22",
        还可以是对象形式,比如{"adminCode":"king","age":22})
    dataType: 服务器返回的数据类型,有如下类型:
            "json"    json字符串
            "text"    文本
            "html"    html文档
            "xml"     xml文档
            "script"  javascript脚本
    success: 绑订事件处理函数(服务器已经返回了所有数据,
            并且没有出错)。
    error: 绑订事件处理函数(服务器出错了)
比如:
    $.ajax({
        "url":"check.do",
        "type":"get",
        "data": "adminCode=king",
        "dataType":"text",
        "success": function(obj){
                     //处理服务器返回的数据了
                     obj就是服务器端返回的数据。
                     如果返回的是json字符串,会
                     自动转换成javascript对象。 
                   },
        "error": function(){
                }           
    });

注:使用jQuery还有很多向服务器发送异步的请求(如:$Obj.load(),$.post(),等等),这里就不多说了。

<2>json

1.什么是json?

是一种轻量级的数据交换格式。
注:json借鉴了javascript的部分语法    
注:数据交换:指的是将要交换的数据转换成一种与平台无关的
        数据格式(比如xml),然后发送给接收方来处理。
    轻量级:json相对于xml而言,文档更小,解析速度更快。

2.使用json:

1)java对象如何转换成json字符串?
    使用jackson提供的api(ObjectMapper)。
2)将json字符串转换成javascript对象?
    使用javascript内置对象JSON提供的parse()函数。

3.Spring MVC 提供了 Ajax支持:

1.必须导入Jackson API:

        com.fasterxml.jackson.core
        jackson-annotations
        2.2.3
    
    
        com.fasterxml.jackson.core
        jackson-core
        2.2.3
    
    
        com.fasterxml.jackson.core
        jackson-databind
        2.2.3
    

2.在控制器上添加@ResponseBody注解,就可以将Java对象(是个Javabean对象)转换成json对象发送给客户端了。









你可能感兴趣的:(ajax、json)