onuninitialized和ajax,12.3 Prototype对Ajax的支持

12.3  Prototype对Ajax的支持

Prototype为Ajax开发提供了有力的支持,其中主要包括Ajax.Request、Ajax.Response。下面将对这两个核心支持进行讲解。

(1)Ajax.Request

Prototype是Ajax的核心,用于发送Ajax请求的相关操作,其原型为new Ajax.Request(url [ , options ] ),通用属性options如表12-6所示。

表12-6  Prototype对Ajax通用属性options的说明

属性名称

说明

asynchronous

是否异步,默认为true

contentType

传递数据的编码格式,默认为application

/x-www-form-urlencoded

encoding

申请数据的编码,默认为UTF-8

evalJS

如果返回为JS格式,是否自动执

行JS代码,默认为true

续表

属性名称

说明

evalJSON

返回JSON对象,并把对象保存在response

对象的responseJSON属性中,返回的JSON文

件类型为application/json,默认为true

method

Get Post方式设定,默认为post

parameters

申请时传递的参数,可以为Hash或者url_encoded

字符串,如果是Hash,就调用Hash对象的

toQueryString()方法,转成相应的字符串

postBody

请求时传递的数据

requestHeaders

请求时的头信息,***传递Hash形式的参数,

默认参数如下所示。

qX-Requested-With:XMLHttpRequest

qX-Prototype-Version:当前使用的

qPrototype版本(如1.6.0)

qAccept:text/javascript、text/html、

qapplication/xml、text/xml、and */*

同时Ajax提出请求后,会在一定情况下触发一些事件或者称为回调函数,如表12-7所示。

表12-7  Ajax.Request相关事件说明

事件名称

说明

onCreate

对象被创建,请求准备好发送

onUninitialized

创建时触发

onLoading

初始化时触发

onLoaded

请求发送时触发

onInteractive

响应收到时触发

onFailure

接收到服务器响应,但HTTP状态码显示回应不正确

onSuccess

接收到服务器响应,但HTTP状态码显示正确200~299

onXYZ

对接收到的特殊HTTP状态码进行回应

onComplete

服务器接收完毕后触发,通常在onFailure、

onSuccess、onXYZ 3个回调函数之后被触发

onException

可以在请求的任何生命环节发生,如果发生一

些错误,会激发该回调,第二个参数是exception对象

(2)Ajax.Response

Request的相关回调除onException外***个参数都是Response对象。Response对象包含了Ajax返回对象,Response对象包括如表12-8所示属性。

表12-8  Ajax.Response相关属性说明

属性名称

说明

status

返回的HTTP状态码

statusText

与status一起的状态文本,如果没有便为""

readyState

请求的当前状态。0为"Uninitialized",1为

"Loading",2为"Loaded",3为"Interactive"、

4为"Complete"

responseText

返回的文本

responseXML

返回的XML

续表

属性名称

说明

responseJSON

返回的JSON

headerJSON

Prototype 1.6的一个新属性,包含对返回

对象中X-JSON头信息的执行。如果返回

没有X-JSON头信息,则返回null

request

请求对象本身

transport

本地XMLHttpRequest对象本身,通常

不使用,只是为了保证兼容性

Response对象还包含如表12-9所示的方法。

表12-9  Ajax.Response相关方法说明

方法名称

说明

getAllHeaders( )

返回相应的所有头信息,出现异常时返回null

getAllResponseHeaders( )

返回一个字符串包含所有标题隔开、

换行符。通常使用getAllHeaders

getHeader(name)

返回相应的头信息,出现异常时返回null

getResponseHeader(name)

返回相应的头信息,出现异常时返回

null。通常使用getHeader

除了Ajax.Request、Ajax.Response两个核心支持外,还提供了用来根据返回的XHTML代码更新相应容器内容的Ajax.Updater类、用来定时发起请求的Ajax. PeriodicalUpdater类、用于维护正在运行的Ajax对象列表的Ajax.Responders。在此这些类不再一一详解,在后续章节中使用时再进行讲解。

Prototype对于Ajax的支持将通过12.4节的重建电子相册进行代码演示。

点赞 0

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值