没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
JQUERY AJAX 异步操作详细说明
全称 (异步的 和
)。它并非一种新的技术,而是以下几种原有技术的结合体。
使用 和 来表示。
使用 模型来交互和动态显示。
使用 ! 来和服务器进行异步通信。
" 使用 # 来绑定和调用。
通过 异步技术,可以在客户端脚本与 $ % 服务器交互数据的过程中
使用 ! 对象来完成 & 请求' ! (应答' 模
型:
不需要用户等待服务端响应。在异步派发 ! 请求后控
制权马上就被返回到浏览器。界面不会出现白板,在得到服务器响应之
前还可以友好的给出一个加载提示。
不需要重新加载整个页面。为 ! 注册一个回调函数,
待服务器响应到达时,触发回调函数,并且传递所需的少量数据。“按
需取数据”也降低了服务器的压力。
不需要使用隐藏或内嵌的框架。在 对象之前,模拟 #) 通信通常
使用 * 手段,如使用隐藏的或内嵌的框架'+,- .标签。
下面介绍下 中的重要对象: ! 。
! 对象'
! 是一套可以在 、/%、 等脚本
语言中通过 协议传送或接收 及其他数据的一套 &0。
! 对 象 首 次 以 对 象 形 式 在 微 软 0
1)2 '013 中以引入。其他浏览器制造商在认识到这一对象重要性后也纷
纷实现了 ! 对象,但是以一个本地 对象而不是作
为一个 对象实现。而如今,由于安全性、标准等问题,微软已经在其
014 中把 ! 实现为一个本地 对象。
&0
描述
客服端请求
'- 525
5 %6 5
%&$
规定请求的类型、6以及是否异步处理请求。
- :请求的类型,例如:&、71、&6 及
&&809。大小写不敏感。
2:请求的 6 地址,可以为绝对地址也可以为相对
地址。
: 可选;: ( 默认 ,异步 )或 ,2 (同
步)。
注释:当您使用 <,2 时5会等到
服务器响应就绪才继续执行。如果服务器繁忙或缓
慢,应用 程 序 会 挂 起 或 停 止 。 此 时 , 不 需 要 编 写
= 回 调 函 数 , 把 代 码 放 到
'语句后面即可。
" %6 :可选;:如果服务器需要验证,此处指定用
户名,如果未指定,当服务器需要验证时,会弹出验
证窗口。
3 %&$:可选;:验证信息中的密码部分,如果
用户名为空,则此值将被忽略。
= !
'-
获取指定的相应头部信息
!
'- 52
自 定 义 & 头 部 信 息 。 需 在 open() 方 法 之 后 和
send()之前调用,才能成功发送请求头部信息。
传送门:& 头部详解
浏览器能够处理的媒体类型
>
浏览器申明自己接收的字符集
>
1=
浏览器申明自己接收的编码方法,通
常指定压缩方法,是否支持压缩,支
持什么压缩方法(=?, @ )
客户端指定要请求的 A1B 服务器的
域名(0&地址和端口号
,
发出请求的页面的 60
>
标明发送或者接收的实体的 01 类
型。传送门:
1、HTTP Content-type
对照表
2 、 格 式 : Content-Type:
[type]/[subtype]; parameter
>
! >
A
非标准 & 头,只为 C ,) 标注
是否为 #) 异步请求,22 表示为同
步请求。
默认情况下,服务器对 & 请求和提交 A % 表单
不 会 一 视 同 仁 , 将 > 头 部 信 息 设 置 为
2()>$$$>,->2 '模拟表单提交
'=
将请求发送到服务器。参数 = 仅用于 & 请求;
对于 71 请求的参数写在 2 后面,所以 = 参数传
递 22。
%'
调用此方法可取消异步请求,调用后, 对象停止触
发事件,不允许访问任何与响应相关的属性;
服务端响应
= 事件
对于异步请求,如果需要对服务器获取和操作响应结果,
则在 send() 之前,需要为 = 属性
指定处理方法。该函数用于对服务器响应进行处理。
存有 ! 的状态。每当 改变
时,就会触发 = 事件。
从 D到 "发生变化:
D'未初始化 对象已建立,但是尚未初始化(尚未
调用 方法)
'初始化 对象已建立,尚未调用 方法
'发送数据 方法已调用,但是当前的状态
及 头未知
'数据传送中 已接收部分数据,因为响应及
头 不 全 , 这 时 通 过 B
和 ) 获取部分数据会出
现错误
"'完成 数 据 接 收 完 毕 5 此 时 可 以 通 过
-2 和 ) 获
取完整的回应数据
( 数 字 表
示)
返回当前请求的 状态码。
传送门:&
状态码一览表( & )
)) ( 临 时 响
应)
表示临时响应并需要请求者继续执
行操作的状态代码。
))(成功) 表 示 成 功 处 理 了 请 求 的 状 态 代
码。1=:DD
))(重定向) 表示要完成请求,需要进一步操
作。通常,这些状态代码用来重定
向。1=:D"
")) ( 请 求 错
误)
这些状态代码表示请求可能出错,
导致服务器无法正常处理。1=:
"D"
3)) ( 服 务 器 错
误)
这些状态代码表示服务器在尝试处
理请求时发生内部错误。这些错误
可能是服务器本身的错误,而不是
请求出错。1=:3DD
) ( 字 符
表示)
返回当前请求的状态文本 =:E(:DD)
responseText
将响应信息作为字符串返回
responseXML
将响应信息格式化为 -2- 对象并返回
B
(只有微软的 IE 支
持)
将响应信息正文以 = % 数组形式返回'二进制
数据
-
(只有 IE 的某些版
以 - 对象'二进制流的形式返回响应信息
本支持)
=
'-
从响应信息中获取指定的 头
= 22
'
获取响应的所有 头
-
通常用于重写服务器响应的 01 类型。1=,正常情况
下 ! 只接收文本数据,但我们可以重写
01 为“ )(2F <)> > C G,以欺
骗浏览器避免浏览器格式化服务器返回的数据,以实现接
收二进制数据。
! 2
! 是一个浏览器接口,使得 可以进行 &
'通信。但是,这个接口一直没有标准化,每家浏览器的实现或多或少有点
不同。3的概念形成后,A开始考虑标准化这个接口。DDH 年
月,提出了 ! 2草案。
I 老版本的缺点
老版本的 ! 对象有以下几个缺点:
只支持文本数据的传送,无法用来读取和上传二进制文件。
传送和接收数据时,没有进度信息,只能提示有没有完成。
受到J同域限制J(- =&2),只能向同一域名的服务器请
求数据。
I 新版本的功能
新版本的 ! 对象,针对老版本的缺点,做出了大幅改进。
可以设置 &请求的时限。
可以使用 8- 对象管理表单数据。
可以上传文件。
" 可以请求不同域名下的数据(跨域资源共享,>=
=,简称 )。
3 可以获取服务器端的二进制数据。
K 可以获得数据传输的进度信息。
I介绍几个 ! 新增的成员
超时时限
-
设置 #) 请求超时时限,过了这个时限,就自动停止
& 请求。
- 事
件
当 #) 超过 - 时限时触发的回调函数。
指定响应格式
'默认:“ )G在发送请求前,根据您的数据需要,将
)I 设 置 为
“ )G、“ %L G、“ %2%G或“- G。
成 功 发 送 请 求 后 , ) 的 响 应 属 性 会 包 含
=、BL 、B2%或 - 形式
(具体取决于 的设置)的请求数据。
进度信息
= 事件 在 ! 对象传递数据的时候用来返回进
度信息。它分成上传和下载两种情况。下载的 =
事件属于 ! 对象,上传的 = 事
件属于 ! I2 对象。即:
)I= < &= F
)I2I= < &= F
还新增了与 = 事件相关的五个事件:
2事件:传输成功完成。
%事件:传输被用户取消。
事件:传输中出现错误。
" 2 事件:传输开始。
3 21 事件:传输结束,但是不知道成功还是失
败。
"I 一个新功能实例
接收二进制数据(方法 :改写 01 )
老版本的 ! 对象,只能从服务器取回文本数据。
但我们可以改写数据的 01 ,将服务器返回的二进制数据伪装
成文本数据,并且告诉浏览器这是用户自定义的字符集。
关键代码如下:
服务端
?
1
2
3
4
5
6
7
8
9
1
0
1
1
String str ="二进制数据获取";
MemoryStream _memory =new MemoryStream();
BinaryFormatter formatter =new BinaryFormatter();
formatter.Serialize(_memory, str);
_memory.Position = 0;
byte[] read =new byte[_memory.Length];
_memory.Read(read, 0, read.Length);
_memory.Close();
context.Response.ContentType ="text/plain";
// 服务器使用 OutputStream 输出二进制流
context.Response.OutputStream.Write(read, 0, read.Length);
客服端
?
1
2
$('#btn_mime').bind('click',null
,function () {
剩余28页未读,继续阅读
资源评论
nnbabi
- 粉丝: 1
- 资源: 17
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功