chap15 客户端脚本编程之框架类介绍.pdf
《chap15 客户端脚本编程之框架类介绍.pdf》由会员分享,可在线阅读,更多相关《chap15 客户端脚本编程之框架类介绍.pdf(64页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第15章 客户端脚本编程之框架类 ASP.NET AJAX 框架提供了很多内置的 JavaScript 类以方便程序员来开发客户端脚本,这些类主要包括在如下几个命名空间之中:Sys,提供微软 AJAX 库的根命名空间。Sys.Net,包括管理支持 AJAX 的 ASP.NET 客户端应用程序和服务器上的 Web 服务之间的通信的类。Sys.Serialization,包括类与 ASP.NET 中的 AJAX 客户端数据序列化功能相关。Sys.Services,包括支持 AJAX 的 ASP.NET 客户端应用程序中提供对 ASP.NET 身份验证服务、配置文件服务以及其他应用程序服务的脚本访问
2、的类。Sys.WebForms,包括微软 AJAX 库中与部分页面刷新相关的类。Sys.UI,包含与用户界面相关的类。15.1 Sys 命名空间 Sys 命名空间是微软 AJAX 库的根命名空间,该命名空间包括如表 15-1 所示的类和接口。表 15-1 Sys 命名空间下的类和接口 名称 描述 Sys.Application 类 提供一个运行时对象,该对象公开客户端事件并管理向应用程序注册的客户端组件。Sys.ApplicationLoadEventArgs 类 由 Application 类用于保存 load 事件的事件参数。Sys.CancelEventArgs 类 为可以取消的事件提供
3、基类。Sys.Component 类 为Control和Behavior类提供基类,并为生存期应由ASP.NET AJAX客户端库管理的任何其他对象提供基类。Sys.CultureInfo 类 表示一个区域性定义,此定义可应用到接受区域性相关设置的对象。Sys.Debug 类 提供针对客户端 ECMAScript(JavaScript)代码的调试和跟踪功能。Sys.EventArgs 类 提供了一个基类,其派生类可由事件源用来传递事件参数信息。Sys.EventHandlerList 类 为组件创建客户端事件字典,以事件名称为键,以关联的处理程序为值。Sys.IContainer 接口 为可以
4、包含其他组件的所有组件提供一个公共接口。Sys.IDisposable 接口 为应用程序定义的任务(包括关闭、释放或重置由已注册 Microsoft AJAX Library 类的实例占据的资源)提供一个公共接口。Sys.INotifyDisposing 接口 指示实现该接口的类型提供释放通知。Sys.INotifyPropertyChange 接口 定义 propertyChanged 事件。Sys.PropertyChangedEventArgs 类 由 propertyChanged 事件用于指示哪个属性已更改。Sys.Res 类 提供由 Microsoft AJAX Library 框
5、架使用的静态、非特定区域性异常消息。Sys.StringBuilder 类 提供一种用于串联字符串的机制。Sys 异常类型 引发一个 Error,它表示由 Microsoft AJAX Library 框架引发的异常。这些异常是使用 Error 类型扩展函数动态创建的,因此不能实例化或调用。在 Sys 命名空间包括的类中,Sys.Applicatio 类、Sys.ApplicationLoadEventArgs 类、Sys.CultureInfo 类和 Sys.StringBuilder 类比较常用,下面就详细介绍有关这几个类的知识,其它类的相关知识可以参考 MSDN 提供的参考文档。15.1
6、.1 Sys.Application 类 Sys.Application 类提供一个运行时对象,该对象公开客户端事件并管理向应用程序注册的客户端组件。Application 对象还负责引发客户端页面全生命周期事件(如 pageInit 事件、pageLoad 事件和 pageUnload 事件等),并负责管理已注册组件的释放。此对象的成员在初始化客户端应用程序后全局可用,这些成员可不在创建类的实例的情况下调用。1Sys.Application 类的方法 Sys.Application 类提供了如表 15-2 所示的方法。表 15-2 Sys.Application 类提供的方法 名称 描述 S
7、ys.Application.addComponent 方法 向应用程序注册组件,如果组件未初始化,则将其初始化。Sys.Application.beginCreateComponent 方法 指示应用程序开始创建组件。Sys.Application.beginUpdate 方法 由 Sys.Application.beginUpdate 方法 调用,指示设置应用程序组件属性的过程已开始。Sys.Application.dispose 方法 释放客户端应用程序持有的资源和依赖项。Sys.Application.endCreateComponents 方法 指示应用程序完成组件创建。Sys.Ap
8、plication.endUpdate 方法 由 Sys.Application.endCreateComponents 方法 调用,指示更新应用程序的过程已完成。Sys.Application.findComponent 方法 返回指定的 Sys.Component 对象。Sys.Application.getComponents 方法 返回已通过 addComponent 方法向应用程序注册的所有组件的数组。Sys.Application.initialize 方法 初始化应用程序并引发 load 事件。Sys.Application.notifyScriptLoaded 方法 由引用的脚
9、本调用,用于指示已经加载此脚本。Sys.Application.queueScriptReference 方法 按顺序将要以排队顺序加载的脚本排入队列。Sys.Application.raiseLoad 方法 引发 load 事件。Sys.Application.raisePropertyChanged 方法 引发 Sys.INotifyPropertyChange.propertyChanged 事件。Sys.Application.registerDisposableObject 方法 注册一个将要求从应用程序中释放的对象。Sys.Application.removeComponent 方
10、法 从应用程序中移除对象并释放该对象(如果该对象可释放)。Sys.Application.unregisterDisposableObject方法 从应用程序中注销可释放对象。Sys.Application.updated 方法 由 Sys.Application.endUpdate 方法调用,用作添加其他逻辑的占位符。2Sys.Application 类的属性 Sys.Application 类提供了一个名为 Sys.Application.isCreatingComponents 属性,通过该属性可以获取一个值,该值指示应用程序是否正在创建组件。若该值为 true 表示应用程序正在创建组件
11、,若该值为 fasle 表示应用程序没有在创建组件。该属性是只读的。在前面介绍过若要获取或设置客户端 API 属性的属性值,必须调用以 get_和 set_为名称前缀的属性访问器方法。因此可以按照以下代码的形式来访问该属性:var isCreating=Sys.Application.get_isCreatingComponents();3Sys.Application 类的事件 Sys.Application 类提供了三个事件:(1)Sys.Application.init 事件,在加载所有脚本之后,创建对象之前引发。将委托函数添加到 init 事件中,以完成在创建对象之前必须执行的任务。访
12、问器 add_init 将委托函数绑定到 init 事件,访问器 remove_init 用来取消绑定被绑定的函数。该事件的应用可以参考如下代码:/把一个函数绑定到 init 事件 Sys.Application.add_init(applicationInitHandler);function applicationInitHandler()/添加创建对象之前要执行的程序 (2)Sys.Application.load 事件,在已加载所有脚本且已创建并初始化应用程序中的对象时引发。将委托函数附加到 load 事件,以完成在应用程序中创建对象之后、而且这些对象可以相互作用时必须执行的任务。访问
13、add_load将委托函数绑定到load事件,而remove_load访问器则取消绑定。该事件的应用可以参考如下代码:/把一个函数绑定到 load 事件 Sys.Application.add_load(applicationLoadHandler);function applicationLoadHandler()/添加引发该事件时要执行的程序 (3)Sys.Application.unload 事件,在释放客户端应用程序中的所有对象之前引发。将委托事件添加到 unload 事件,可以完成在客户端应用程序卸载之前必须执行的所有任务。访问器 add_unload 可将委托函数添加到卸载事件,访
14、问器 remove_unload 可取消绑定。该事件的应用可以参考如下代码:/把一个函数绑定到 unload 事件 Sys.Application.add_unload(applicationUnloadHandler);function applicationUnloadHandler()/添加应用程序卸载之前要执行的程序 4应用举例 下面介绍一个应用 Sys.Application 类的实例。例 Sample15-1 利用相关提示显示了该类提供的事件发生的先后顺序。例 Sample15-1 创建过程如下:(1)打开 VS.NET2005,创建一个 ASP.NET AJAX 网站 Sampl
15、e15-1。(2)打开页面文件 Default.aspx,切换到“源”视图,假如如下代码:这段加入了一个 ScriptManager 控件的定义,同时还加入了一个 textarea 控件的定义。Application 应用举例 (3)加入标记,代码如下:(4)加入 Sys.Application.init 事件以及相关执行函数,代码如下:在绑定的函数中加入该事件在发生的提示。/Init 事件 Sys.Application.add_init(applicationInitHandler);function applicationInitHandler()alert(ApplicationIni
16、t);(5)加入 Sys.Application.load 事件以及相关执行函数,代码如下:在绑定的函数中加入该事件在发生的提示,然后在 textarea 控件显示页面是否支持部分页面刷新,最后弹出在应用程序中注册的组件的个数。/Load 事件 Sys.Application.add_load(applicationLoadHandler);function applicationLoadHandler(sender,e)alert(ApplicationLoad);/isPartialLoad-是否是部分刷新 Sys.Debug.trace(是否是部分刷新:+e.get_isPartialL
17、oad();alert(注册组件的个数:+e.get_components().length)(6)加入 Sys.Application.unload 事件以及相关执行函数,代码如下:在绑定的函数中加入该事件在发生的提示。/Unload 事件 Sys.Application.add_unload(applicationUnloadHandler);function applicationUnloadHandler()alert(ApplicationUnload);运行 Sample15-1,首先弹出如图 15-1 所示的界面,接着出现图 15-2 所示的界面,然后出现图 15-3 所示的界面
18、,在关闭页面后,出现图 15-4 所示的界面。图 15-1 Sys.Application.init 事件在发生 图 15-2 Sys.Application.load 事件在发生 图 15-3 Sys.Application.load 事件在发生 图 15-4 Sys.Application.unload 事件在发生 15.1.2 Sys.ApplicationLoadEventArgs 类 Sys.ApplicationLoadEventArgs 类是由 Application 类用于保存 load 事件参数。它包含两个属性:(1)Sys.ApplicationLoadEventApone
19、nts 属性,通过该属性获取一个数组,其中包含自从上一次引发 load 事件以来创建的所有组件。(2)Sys.ApplicationLoadEventArgs.isPartialLoad 属性,返回一个值,该值指示页面是否采用部分页面刷新。Sys.ApplicationLoadEventArgs 类的使用,可以参考如下代码:var a=new Sys.ApplicationLoadEventArgs(components,isPartialLoad);if(a.get_isPartialLoad()/执行相关操作 15.1.3 Sys.CultureInfo 类 Sys.CultureInfo
20、 类表示一个区域性定义,此定义可应用到接受区域性相关设置的对象。它包含四个属性:(1)Sys.CultureInfo.CurrentCulture 属性,该属性用来获取由服务器发送的当前区域性的全球化值。此成员是静态的,可在未创建类实例的情况下调用。(2)Sys.CultureInfo.dateTimeFormat 属性,该属性用来获取一个对象,这个对象包含一个由区分区域性的格式设置和分析字符串值组成的数组,这些字符串值可以应用于 Date 类型扩展。(3)Sys.CultureInfo.InvariantCulture 属性,该属性用来获取由服务器发送的固定区域性的全球化值。此成员是静态的,
21、可在未创建类实例的情况下调用。(4)Sys.CultureInfo.name 属性,该属性用来获取表示语言和地区的区域性值(区域设置)。(5)Sys.CultureInfo.numberFormat 属性,该属性用来获取获取一个对象,这个对象包含一个由区分区域性的格式设置和分析字符串值组成的数组,这些字符串值可以应用于 Number 类型扩展。下面通过一个例子来介绍 Sys.CultureInfo 类的使用。例 Sample15-2 展示了当前文化背景下的时间和数字的描述形式。该实例创建步骤如下:(1)打开 VS.NET2005,创建一个 ASP.NET AJAX 网站 Sample15-2。
22、(2)打开页面文件 Default.aspx,切换到“源”视图,加入如下代码:以下代码中定义了一个 ScriptManager 控件,并设置 EnableScriptGlobalization 属性为True。定义一个超链接显示当前文化背景是中文。并定义两个标签控件用来显示程序运行的结果。Untitled Page 中文 (3)加入标记以加入客户端脚本程序,代码如下:(4)定义一个变量以接受 Sys.CultureInfo.CurrentCulture 属性返回的对象,代码如下:/创建一个 Sys.CultureInfo 对象 var cultureObject=Sys.Cultur
23、eInfo.CurrentCulture;(5)加入获取当前文化的名字的代码,代码如下:/当前 Culture 的名称 var cultureName=cultureObject.name;(6)加入获得 dateTimeFormat 对象的代码,代码如下:/获得 dateTimeFormat 对象 var dtfObject=cultureObject.dateTimeFormat;(7)加入一个具有各种格式化类型的数组的定义代码,代码如下:myArray 为装载各种格式化类型的数组,myArray1 为对应的说明。/创建一个具有各种格式化类型的数组 var myArray=DateSepa
24、rator,FullDateTimePattern,LongDatePattern,LongTimePattern,MonthDayPattern,ShortDatePattern,ShortTimePattern,TimeSeparator,UniversalSortableDateTimePattern,YearMonthPattern,DayNames,MonthNames,IsReadOnly,NativeCalendarName,MonthGenitiveNames ;var myArray1=日期分割符,时间的完整格式,日期的完整格式,时间的完整格式,月日格式,日期缩写格式,时间缩
25、写格式,时间分割符,标准的时间排序格式,年月格式,星期名称,月名,是否只读,国家日历名,月名 ;(8)加入遍历 myArray 的代码以获得对应的格式字符串,代码如下:通过循环 myArray 获得对应的格式字符串,同时遍历 myArray1 生成构成表格的 HTML标记的字符串。var result=区域名称:+cultureName;for(var i=0,l=myArray.length;i l;i+)var arrayVal=myArrayi;if(typeof(arrayVal)!=undefined)result+=+arrayVal+eval(dtfObject.+arrayVa
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- chap15 客户端脚本编程之框架类介绍 客户端 脚本 编程 框架 介绍
限制150内