Javaweb 10Ajax与jQuery

目录

Ajax与jQuery

Ajax

传统Web与Ajax的差异

Ajax简介

Ajax的作用

如何使用Ajax?

Ajax工作流程

XMLHttpRequest

使用Ajax验证用户名

GET请求和POST请求的区别

对AJAX的总结

使用jQuery实现Ajax

$.ajax()简介

使用$.ajax()发送异步请求

JSON

定义JSON对象


Ajax与jQuery

Ajax

为什么要使用Ajax:无刷新:不刷新整个页面,只刷新局部

无刷新的好处:

只更新部分页面,有效利用带宽

提供连续的用户体验

提供类似C/S的交互效果,操作更方便

传统Web与Ajax的差异

差异方式说 明
发送请求方式不同传统Web浏览器发送同步请求
发送请求方式不同Ajax技术异步引擎对象发送请求
服务器响应不同传统Web响应内容是一个完整页面
服务器响应不同Ajax技术响应内容只是需要的数据
客户端处理方式不同传统Web需等待服务器响应完成并重新加载整个页面后用户才能进行操作
客户端处理方式不同Ajax技术可以动态更新页面中的部分内容不影响用户在页面进行其他操作

Ajax简介

Ajax:异步刷新技术

Asynchronous 异步的 JavaScript And Xml

Ajax是什么?

Ajax是一种使用现有技术集合,技术内容包括: HTML 或 XHTML, CSS, JavaScript, DOM, XML, XSLT, 以及最重要的XMLHttpRequest。

用于浏览器与服务器之间使用异步数据传输(HTTP 请求),做到局部请求以实现局部刷新

Ajax的作用

1.不刷新页面而更新网页(局部刷新) 2.在页面加载后从服务器请求数据 3.在页面加载后从服务器接收数据 4.在后台向服务器发送数据

如何使用Ajax?

1.创建XMLHttpRequest对象

2.使用open方法设置和服务器的交互信息

3.设置requestHeader() request.setRequestHeader(属性名称, 属性值);

4.send() 设置发送的数据,开始和服务器端交互

5.取得响应,注册事件

Ajax工作流程

XMLHttpRequest

整个Ajax技术的核心

提供异步发送请求的能力

常用方法

方 法说 明
open( String method, String ur, boolean async, String user, String password )创建一个新的HTTP请求
send( String data )发送请求到服务器端
abort( )取消当前请求
setRequestHeader( String header, String value )设置请求的某个HTTP头信息
getResponseHeader( String header )获取响应的指定HTTP头信息
getAllResponseHeader( )获取响应的所有HTTP头信息

事件

onreadystatechange:指定回调函数

常用属性

readyState:XMLHttpRequest的状态信息

就绪状态码说 明
0XMLHttpRequest对象未完成初始化
1XMLHttpRequest对象开始发送请求
2XMLHttpRequest对象的请求发送完成
3XMLHttpRequest对象开始读取响应
4XMLHttpRequest对象读取响应结束

status:HTTP的状态码

状态码说 明
200服务器正确返回响应
404请求的资源不存在
500服务器内部错误
403没有访问权限
……

statusText:返回当前请求的响应状态

responseText:以文本形式获得响应的内容

responseXML:将XML格式的响应内容解析成DOM对象

使用Ajax验证用户名

实现无刷新用户名验证

当用户名文本框失去焦点时,发送请求到服务器,判断用户名是否存在

如果已经存在提示 “用户名已被使用”,如果不存在则提示 “用户名可以使用”

使用文本框的onBlur事件

使用Ajax技术实现异步交互

创建XMLHttpRequest对象

通过XMLHttpRequest对象设置请求信息

向服务器发送请求

创建回调函数,根据响应状态动态更新页面

编写服务器端处理客户端请求

GET请求和POST请求的区别

步 骤请求方式实 现 代 码
初始化组件GETxmlHttpRequest.open( "GET",url, true );
POSTxmlHttpRequest.open( "POST", url, true ); xmlHttpRequest .setRequestHeader( "Content-Type", "application/x-www-form-urlencoded" );
发送请求GETxmlHttpRequest.send( null);
POSTxmlHttpRequest.send("key=xxx&type=12&year=2016" );

对AJAX的总结

AJAX是异步的JavaScript和XML; AJAX是一种用于创建更好更快以及交互性更强的Web应用程序的技术; AJAX是一种独立于Web服务器软件的浏览器技术; AJAX不是一种新的编程语言,而是一种技术; AJAX 使用 JavaScript 在 web 浏览器与 web 服务器之间来发送和接收数据(前端后端交互); AJAX在浏览器与Web服务器之间使用异步数据传输(HTTP请求)。

使用jQuery实现Ajax

传统方式实现Ajax的不足

步骤繁琐

方法、属性、常用值较多不好记忆

处理复杂结构的响应数据(如XML格式)比较烦琐

浏览器兼容问题

$.ajax()简介

封装Ajax请求

参数以JSON格式出现

$.ajax( [settings] );

常用属性参数

参 数类 型说 明
urlString发送请求的地址,默认为当前页地址
typeString请求方式,默认为GET
dataPlainObject或 String或Array发送到服务器的数据
dataTypeString预期服务器返回的数据类型,包括:XML、HTML、Script、JSON、JSONP、text
timeoutNumber设置请求超时时间
globalBoolean表示是否触发全局Ajax事件,默认为true

常用函数参数

参 数类 型说 明
beforeSendFunction ( jqXHR jqxhr, PlainObject settings )发送请求前调用的函数
successFunction( 任意类型 result, String textStatus, jqXHR jqxhr)请求成功后调用的函数参数result:可选,由服务器返回的数据
errorFunction ( jqXHR jqxhr, String textStatus, String errorThrown )请求失败时调用的函数
completeFunction ( jqXHR jqxhr, String textStatus)请求完成后(无论成功还是失败)调用的函数

使用$.ajax()发送异步请求

$.ajax( {
     "url"          :  "url",                      // 要提交的URL路径
     "type"         :  "get",                     // 发送请求的方式
     "data"         :  data,                      // 要发送到服务器的数据
     "dataType"     :  "text",                   // 指定传输的数据格式
     "success"      :  function(result) {  // 请求成功后要执行的代码
         },
      "error"       :  function() {           // 请求失败后要执行的代码
         }
} );

JSON

JSON(JavaScript Object Notation)

一种轻量级的数据交换格式

定义和访问

一种轻量级的数据交换格式

采用独立于语言的文本格式

通常用于在客户端和服务器之间传递数据

JSON的优点

轻量级交互语言

结构简单

易于解析

定义JSON对象
var JSON对象 = { "name" : value,  "name" : value,  …… };
var person = { "name" : "张三",   "age" : 30,  "spouse" : null };
var JSON数组 = [ value,  value,  …… ];
var countryArray = [ "中国",  "美国",  "俄罗斯" ];
var personArray = [ { "name":"张三",  "age":30 },
                  { "name":"李四",  "age":40 } ];
​

  • 25
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值