Microsoft AJAX Library的客户端能够调用服务器端Web服务方法,其网络层把客户端描述层与服务器端业务逻辑层绑定到一起。这一方案所带来的优点是,实现了JavaScript客户端与ASP.NET服务器端的松耦合—仅为它们之间的通信提供了一个接口。
Microsoft AJAX Library网络层的工作原理还可以使用如图1所示的方式进行更为直观的描述。
图1 使用ASP.NET AJAX实现异步通讯
从物理实现上分析,这个异步通信层的一部分位于客户端,以可下载的JavaScript脚本形式存在;而另一部分则位于服务器端,以 HTTP处理器(handler)和Web 服务的形式存在。
客户端异步通信层包含了若干JavaScript组件。图2描述了Microsoft AJAX Library提供的异步通信层中客户端的组成。
图2 ASP.NET AJAX框架客户端异步通信层的客户端组成
从更高层次上来看,客户端异步通信层(网络层)可划分为下列三个部分:
其中,代理层包含了访问服务器端功能的所有代理:
借助于各自相应的客户端代理,这些应用程序服务中所实现的方法都可以使用类似于普通Web服务方法的文式进行调用。这种调用方式可以用于调用Web 服务方法, 页面方法以及应用程序服务。
转换层负责实现所有 .NET 类型数据的串行化与反串行化。默认情况下的串行化工作是由Sys.Serialization.JavaScriptSerializer类负责实现的。JSON 用于描述默认的串行化格式,但是也可以使用XML格式来实现串行化。
核心通信层由一组发出HTTP请求的类组成。其中,Sys.Net.WebRequestExecutor相当于实现转换的“抽象”基类, 它提供了一个发出 Web请求的通用接口。Sys.Net.XmlHttpExecutor类继承了类Sys.Net.WebRequestExecutor,它使用XMLHttpRequest发出Web请求. 所有Web 请求的逻辑都是在Sys.Net.WebRequest类中实现的,该类使用一个WebRequestExecutor 对象(默认情况下是使用XmlHttpExecutor)实现这些逻辑。所有在浏览器端发起的Web 请求都在Sys.Net.WebRequestManager类的管理之下,它通过暴露一系列新的 属性、事件和方法对这些请求提供全面的控制,最终实现协调WebRequest组件和XmlHttpExecutor组件之间的关系并保证异步通信的畅通无阻。
在下一篇中,我们将探讨ASP.NET AJAX框架客户端异步通信层的服务器端组成的问题。来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/14518332/viewspace-433146/ ,如需转载,请注明出处,否则将追究法律责任。