Aspnetajax底层异步通信机制

上传人:pu****.1 文档编号:490307379 上传时间:2023-05-25 格式:DOC 页数:122 大小:592KB
返回 下载 相关 举报
Aspnetajax底层异步通信机制_第1页
第1页 / 共122页
Aspnetajax底层异步通信机制_第2页
第2页 / 共122页
Aspnetajax底层异步通信机制_第3页
第3页 / 共122页
Aspnetajax底层异步通信机制_第4页
第4页 / 共122页
Aspnetajax底层异步通信机制_第5页
第5页 / 共122页
点击查看更多>>
资源描述

《Aspnetajax底层异步通信机制》由会员分享,可在线阅读,更多相关《Aspnetajax底层异步通信机制(122页珍藏版)》请在金锄头文库上搜索。

1、.AAjax的使用1.Aajax底层异步通信机制:XMLHTTP对于Aajax是如何实现底层的异步通信呢?其实关于这一块的技术XMLHttp早就出现了,只不过最近两年才被给予了高度的重视。在AAjax的客户端框架中,提供了诸如Sys.Net.WebRequest这样的类型,我们可以通过创建一个该类型的对象,并指定其要调用的服务器端的页面地址,以及对应的参数、超时时间等。但这只不过是对XmlHttp这一技术的包装而已。1.1.Ajax的技术构成技术构成如下:XMLHTTP对象,内置于浏览器中,实现了客户端和服务器端的异步通信。JSON或者XML,他们定义了客户端和服务器端数据交换的格式。HTML

2、、CSS,数据表现技术。JAVASCRIPT,通过JavaScript来操纵浏览器的对象模型,从而实现人机交互。1.2.定义一个XmlHttp对象下面的代码就创建了一个跨浏览器的XmlHttp对象的创建方法。functionCreateXMLHTTP()varxmlhttp;if(window.XMLHTTPRequest)xmlhttp=newXMLHTTPRequest();elseif(window.ActiveXObject)tryxmlhttp=newActiveXObject(Msxml2.XMLHTTP);catch(el)xmlhttp=newActiveXObject(Msx

3、ml.XMLHTTP);if(xmlhttp=null)throw创建xmlHttp对象失败;elsereturnxmlhttp;1.3.XmlHttp对象的Open方法例如通过上面的方法创建了一个xmlHttp对象,可以按照如下的方式调用它的Open方法。xmlHttp.Open(http-method,url,async,userID,password)Open方法中包含了5个参数,前三个是必要的,后两个是可选的(在服务器需要进行身份验证时提供)。参数的含义如下所示:http-method:HTTP的通信方式,比如GET或是POSTurl:接收XML数据的服务器的URL地址。通常在URL中

4、要指明ASP或CGI程序async:一个布尔标识,说明请求是否为异步的。如果是异步通信方式(true),客户机就不等待服务器的响应;如果是同步方式(false),客户机就要等到服务器返回消息后才去执行其他操作userID用户ID,用于服务器身份验证password用户密码,用于服务器身份验证1.4.XmlHttp异步处理方式通过设定xmlHttp对象的onreadystatechange属性,我们可以指定当xmlhttp对象的状态发生更改时候的处理函数,如:xmlhttp.onreadystatechange=HandleStateChange;1.5.XmlHttp对象的Send方法用Ope

5、n方法对xmlHttp对象进行初始化后,调用Send方法发送数据:xmlhttp.Send(data)Send方法的参数类型是Variant,可以是字符串、DOM树或任意数据流。发送数据的方式分为同步和异步两种。在异步方式下,数据包一旦发送完毕,就结束Send进程,客户机执行其他的操作;而在同步方式下,客户机要等到服务器返回确认消息后才结束Send进程。1.6.xmlHttp对象的异步处理函数1.6.1.readyStateXMLHTTP对象中的readyState属性能够反映出服务器在处理请求时的进展状况。客户机的程序可以根据这个状态信息设置相应的事件处理方法。属性值及其含义如下表所示:0(

6、未初始化)对象已建立,但是尚未初始化(尚未调用open方法)1(初始化)对象已建立,尚未调用send方法2(发送数据)send方法已调用,但是当前的状态及http头未知3(数据传送中)已接收部分数据,因为响应及http头不全,这时通过responseBody和responseText获取部分数据会出现错误,4(完成)数据接收完毕,此时可以通过通过responseBody和responseText获取完整的回应数据1.6.2.客户机处理响应信息客户机接收到返回消息后,进行简单的处理,基本上就完成了C/S之间的一个交互周期。客户机接收响应是通过XMLHTTP对象的属性实现的:responseTxt

7、:将返回消息作为文本字符串;responseXML:将返回消息视为XML文档,在服务器响应消息中含有XML数据时使用;responseStream:将返回消息视为Stream对象1.6.3.status通过判断XMLHTTP对象的status,我们可以具体的判断本次请求的实际情况,成功,失败,根据这些状态码我们就可以调用执行成功或者失败的回调函数。长整形标准xmlhttp状态码,定义如下:NumberDescription100Continue101Switchingprotocols200OK201Created202Accepted203Non-AuthoritativeInformati

8、on204NoContent205ResetContent206PartialContent300MultipleChoices301MovedPermanently302Found303SeeOther304NotModified305UseProxy307TemporaryRedirect400BadRequest401Unauthorized402PaymentRequired403Forbidden404NotFound405MethodNotAllowed406NotAcceptable407ProxyAuthenticationRequired408RequestTimeout40

9、9Conflict410Gone411LengthRequired412PreconditionFailed413RequestEntityTooLarge414Request-URITooLong415UnsupportedMediaType416RequestedRangeNotSuitable417ExpectationFailed500InternalServerError501NotImplemented502BadGateway503ServiceUnavailable504GatewayTimeout505HTTPVersionNotSupported如:functionHand

10、leStateChange()if(xmlhttp.readyState=4)/客户端已经完全加载完毕if(xmlhttp.status=200)alert(Result=+xmlhttp.responseXML.xml);/成功执行,调用成功执行的回调函数else/else.2.AAjax系统框架AAjax提供了完整的客户端和服务器端的模型框架。客户端与服务器端的通信模型。2.1.客户端框架只要当前的页面中,包含引用ScriptManager控件,系统就会将“MicrosoftAjax.js”加载到客户端,完成整个客户端架构的构建。关于客户端的架构结构请参考下图:具体的类库截图如下:2.2.

11、服务器端框架服务器端的模型分层如下:AAjax框架提供的服务器端的类库如下:3.针对JavaScript基本类型的扩展JavaScript是一门非常强大的基于对象(ObjectBased)的语言,但是对面向对象(ObjectOriented)的支持还存在一些不足,同时JavaScript内建的类库也比较简单,甚至缺乏一些很常用的功能。ASP.NETajax在运行时扩展了JavaScript,大大增强了它的面向对象支持能力,并扩展了一些开发时常用的操作。3.1.String对象的扩展NameDescriptionendsWithFunctionDetermineswhethertheendoft

12、heStringobjectmatchesthespecifiedstring.formatFunctionReplaceseachformatiteminaStringobjectwiththetextequivalentofacorrespondingobjectsvalue.localeFormatFunctionReplacestheformatitemsinaStringobjectwiththetextequivalentofacorrespondingobjectsvalue.Thecurrentcultureisusedtoformatdatesandnumbers.start

13、sWithFunctionDetermineswhetherthestartoftheStringobjectmatchesthespecifiedstring.trimFunctionRemovesleadingandtrailingwhitespacefromaStringobjectinstance.trimEndFunctionRemovestrailingwhitespacefromaStringobjectinstance.trimStartFunctionRemovesleadingwhitespacefromaStringobjectinstance.3.2.Array对象的扩展NameDes

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号