Ajax的使用

简介: Ajax的使用

1 全局刷新和局部刷新

1)全局刷新: 使用form, href等发起的请求是全局刷新。

用户发起请求, 视图改变了, 跳转视图,使用新的数据添加到页面。

缺点:

1. 传递数据量比较大。 占用网络的带宽
    2. 浏览器需要重新的渲染整个页面。 
    3. 用户的体验不是那么好

2)局部刷新: 在当前页面中,发起请求,获取数据,更新当前页面的dom对象。 对视图部分刷新。

特点:

1. 数量比较小, 在网络中传输速度快。
    2. 更新页面内容, 是部分更新页面, 浏览器不用全部渲染视图。
    3. 在一个页面中,可以做多个 局部刷新
    4. 从服务器获取的是数据, 拿到更新视图

2 异步请求对象

在局部刷新中,使用异步请求对象,在浏览器内部发起请求,获取数据。

异步对象是在浏览器内部的一种 javascript对象。 各大浏览器都能支持异步对象的使用。chrome ,firework, ie, opper ,

异步对象 XMLHttpRequest

3. 异步对象XMLHttpRequest介绍

js中的一种对象, 使用js语法创建和使用这个对象。

var xhr = new XMLHttpRequest();

之后就可以 使用xhr对象的属性或者函数,进行异步对象的操作。

使用异步对象实现局部刷新, 异步对象主要负责发起请求,传递请求的参数,并从服务器接收数据。

局部刷新需要使用那些技术:

1)javascript : 创建XMLHttpRequest对象, 调用它的属性或者方法

2)dom:处理dom,更新select的数据

3)css: 处理视图, 更新,美化。

4)servlet:服务器端技术

5)数据格式:json。 它之前是xml

把上面这些技术的综合使用叫做ajax(阿贾克斯)。

4 Ajax

AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和XML)。

AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分页面内容的新方法

AJAX不是新的编程语言,它是多种技术的综合使用。 包含了javascript, dom

,css, 服务器端技术, servlet ,jsp ,jdbc等等, 还有 json数据格式。

使用AJAX实现局部刷新。

Ajax核心是 javascript 和 xml (json):使用javascript操作异步对象XMLHttpRequest. 和服务器交换使用json数据格式。

5. 异步对象XMLHttpRequest属性和方法

  1. 创建异步对象,使用js的语法
    var xhr = new XMLHttpRequest();
  2. XMLHttpRequest方法
    ①)open(请求方式, 服务器端的访问地址,异步还是同步)
    例如:xhr.open(“get”,“loginServlet”,true);
    ②)send(): 使用异步对象发送请求
  3. XMLHttpRequest属性
    readyState属性:请求的状态
    0:表示创建异步对象时,new XMLHttpRequest();
    1:表示初始异步对象的请求参数。 执行open()方法
    2:使用send()方法发送请求。
    3:使用异步对象从服务器接收了数据
    4:异步对象接收了数据,并在异步对象内部处理完成后。
    status属性:网络的状态,和Http的状态码对应
    200:请求成功
    404: 服务器资源没有找到
    500: 服务器内部代码有错误
    responseText属性:表示服务器端返回的数据
    例如: var data = xhr.responseText;

6. 异步对象XMLHttpRequest使用步骤

1)使用js创建异步对象

var xhr = new XMLHttpRequest();

2)给异步对象绑定事件。事件名称 onreadystatechange

例如button增加单击事件 onclick

xhr绑定事件

xhr.onreadysatechange=function() { 当事件发生时执行的代码 }

<input type="button" onclick="btnClick()" />
<script type="text/javascript">
    function btnClick(){
       按钮单击的处理代码
    }
</script>

在绑定事件中做什么,根据readyState值做请求的处理

xhr.readystatechagne=function(){
   if( xhr.readyState==4 && xhr.status==200 ){
        从服务器获取了数据, 更新当前页面的dom对象,完成请求的处理
        var data = xhr.responseText;
        更新dom对象
        document.getElementById("#mydiv").innertHTML = data;
   }
}
  1. 初始请求的参数,执行open()函数
    xhr.open(“get”,“loginServlet”,true)

4)发送请求,执行send()

xhr.send()

7 同步请求和异步请求

看open(请求方式, 访问uri地址,boolean是不是异步的)

true:异步请求

false:同步请求

8.jquery实现Ajax

使用jquery提供的函数实现ajax请求的处理。 代替直接使用XMLHttpRequest. 但是jquery实际还是使用的异步对象。

$.ajax() 核心的函数

语法: $.ajax( { json格式的参数} )

json格式的参数:key是定义好的, 需要开发人员给key赋值。 这些key是用来表示ajax请求必须的参数

例如,请求的uri地址, 是不是异步请求, 请求的方式等等。

$.ajax(
  {
      url:"queryProvinceServlet",
      type:"get",
      data:{"name":"李四","age":20},
      dataType:"json",
      success:function(resp) { 开发人员获取数据,更新dom对象 },
      error:function(){ alert("请求错误")}
  }
)

url:服务器的地址,例如某个servlet的访问地址。 queryProvinceServlet

type:表示请求的方式,get,post。 默认是get。 这个值不用区分大小写

data:表示提交的请求参数。 可以是string, 数组, json类型的。 推荐使用json格式。

例如: data: {“name”:“李四”,“age”:20}

jquery在发送请求时,会把json中的key作为请求的参数使用, key对应的值作为参数数据。

转为的结果: http://localhost:8080/javaweb/queryProvinceServlet?name=李四&age=20

dataType: 数据格式, 可以是 html, text , xml ,json等等。 表示发起请求后,希望服务器端返回的数据格式。 jquery可以尝试使用对应格式处理返回的数据。 比如你指定了 dataType:json,表示希望服务器返回的是json格式数据。 然后jquery把json数据转为json对象。服务器代码可以获取到 dataType的内容。

例如: 请求中 dataType:“json”, jquery发起请求后,

在请求头中 Accept: application/json, text/javascript, /; q=0.01

如果dataType:“text”, 请求中

Accept: text/plain, /; q=0.01

success: 函数function。 当服务器端返回了数据,jquery处理完数据后,执行这个函数。 等同于异步对象的 readyState==4 $$ status=200的情况

例如: success:function( data){ 开发人员处理服务器返回的数据 }

data是自定义形参, 相当于 data= xhr.responseText

error:function(), 当请求错误时,执行这个函数。

contentType:表示请求的参数数据格式。例如 application/json , 这个内容可以不写。

async: 是一个boolean表示请求是同步的还是异步的。 true是异步的,默认是true; false同步的.

目录
相关文章
|
7月前
|
XML 前端开发 JavaScript
什么是ajax,为什么使用ajax?
什么是ajax,为什么使用ajax?
52 0
|
前端开发 UED
Ajax的使用
Ajax的使用
|
7月前
|
JSON 前端开发 JavaScript
实现ajax
实现ajax
35 0
|
7月前
|
XML 前端开发 JavaScript
什么是ajax?
什么是ajax?
83 0
|
XML 前端开发 JavaScript
24JavaWeb基础 - AJAX介绍
24JavaWeb基础 - AJAX介绍
60 0
|
JSON 前端开发 JavaScript
|
XML 存储 前端开发
|
XML Web App开发 前端开发
初识AJAX
XMLHttpRequest 对象
87 0
|
JSON 缓存 前端开发
|
前端开发 JavaScript 小程序
ajax中使用总结
ajax中使用总结
126 0
ajax中使用总结