[EXTJS中基于事件的编程探究] x黑天鹅事件

上传人:青 文档编号:16816612 上传时间:2020-10-28 格式:DOCX 页数:4 大小:14.98KB
收藏 版权申诉 举报 下载
[EXTJS中基于事件的编程探究] x黑天鹅事件_第1页
第1页 / 共4页
[EXTJS中基于事件的编程探究] x黑天鹅事件_第2页
第2页 / 共4页
[EXTJS中基于事件的编程探究] x黑天鹅事件_第3页
第3页 / 共4页
资源描述:

《[EXTJS中基于事件的编程探究] x黑天鹅事件》由会员分享,可在线阅读,更多相关《[EXTJS中基于事件的编程探究] x黑天鹅事件(4页珍藏版)》请在装配图网上搜索。

1、EXTJS中基于事件的编程探究 x黑天鹅事件 摘要:随着Web2.0时代的到来和AJAX技术的普及,出现了各种基于Javascript的面向对象的开发框架,为开发者带来了很大的便利。以ExtJS为例,结合实际案例对如何利用以基于事件的方式进行结构清晰、耦合性低和重用性强的编程进行了解析。关键词:Javascript;面向事件;ExtJS中图分类号:TP312文献标识码:A文章编号:16727800(x)008005003作者简介:刘怀北(1960-),男,福建省科学技术信息研究所工程师,研究方向为计算机应用。0引言随着Web2.0时代的到来和AJAX技术的普及,Javascript得到了各种浏

2、览器的广泛支持,并在Web应用开发中起着越来越重要的作用。近年来,出现了各种基于Javascript所衍生出来的面向对象的开发框架,例如jQuery、ExtJS等,为开发者提供了面向对象的编程方式,很大程度地降低了开发者使用Javascript进行Web应用开发的难度。通过使用这些框架,开发者能够改善之前Javascript代码难以阅读和维护的状况。然而,如何使用这些框架开发出结构清晰、耦合性低和重用性高的代码仍然是大多数开发者所要面对的一个问题。为此,本文将以ExtJS为例,对如何利用以基于事件的方式进行编程来解决这些问题进行解析。1ExtJS简介ExtJS是一款搭建在Javascript基

3、础之上的开源编程框架,由Sencha公司推出,目前版本已更新至4.0,其具有以下特点:面向对象编程;完善的事件监听与响应机制;跨浏览器支持;丰富的可扩展控件支持;高效美观的图表和绘图组件。ExtJS由于其实用性、开源协议以及对于跨浏览器和图表等高级功能的良好支持,越来越受到开发者的青睐,成为进行大型Web项目前端开发的重要工具。同时,开发者也可以通过Adobe公司的AIR平台整合使用ExtJS框架进行传统客户端的开发。2基于事件的编程ExtJS对于事件监听和响应有着一套良好的机制,相关接口与通信过程主要由类Ext.util.Observable来定义与实现。Ext.util.Observabl

4、e处在其类层次结构中的底层,被所有界面元素组件类继承。任何Ext.util.Observable类及其子类拥有fireEvent和addListener两个方法,分别用于触发事件和添加事件响应。2.1事件的触发与响应在ExtJS中,触发一个事件需要调用fireEvent方法,该方法具体如下:fireEvent(String eventName, Object. args): Boolean其中,第一个参数为要触发事件的名称,之后可以跟有0个或多个参数,由开发者根据事件的需求自行定义,这些参数将传给任意一个该事件监听者的回调函数。方法的返回值为Boolean类型,返回true,仅当某个该事件监听

5、者的回调函数返回false时,则返回false,并停止将事件传递到下一个监听者。在ExtJS中,定义一个事件的响应动作通过调用addListener方法来实现,该方法具体如下:addListener(String eventName, Function handler, Object scope, Object options):void其中,第一个参数为要监听的事件名称;第二个参数为事件响应时的回调函数,该函数的传入参数为事件触发时所发出的参数;第三个和第四个参数可选,分别表示回调函数的Scope对象和额外添加给回调函数的一个传入参数,该参数将添加至最后。2.2案例接下来,本文将列举一个实际

6、的案例来解析面向事件的编程方式的优点及其所能避免的问题。图1Feed阅读器案例图1为ExtJS开发包中的一个示例程序,是一个基于浏览器的简易的feed阅读器。从界面上来看,可以将该界面分成3个部分:论坛列表:已订阅的论坛列表,对应FroumList类;帖子列表:已选中论坛中的帖子,对应ThreadList类;帖子内容:已选中帖子的内容,对应ThreadContent类。当用户从“论坛列表”界面中选择一个论坛时,在“帖子列表”的界面部分会相应地加载该论坛中的所有帖子,用户选中某一个帖子后,则进一步在“帖子内容”界面中加载该帖子的完整内容。这一系列的动作反应了3个类之间的相互关系,可以通过下图2体

7、现出来。图2各类间的关联显而易见,当FroumList中的某项froum被选中时,需要通过调用ThreadList类中的showThreads(froum)方法来显示相应的帖子列表;当ThreadList中的某项thread被选中时,又需要调用ThreadContent类中的showContent(thread)方法来显示帖子的内容。面对这样的问题,开发者通常会很自然地想到通过基于引用的方式来实现。在ExtJS编程过程中,要实现这种关系有如下几种不同的方式。2.2.1基于引用的方式(1)在实例化时,设置id进行引用,例如在实例化ThreadList时:var threadList = new ThreadList(id:mythreadlist);而在定义FroumList类的显示选中论坛所有帖子的方法时:Ext.extend(FroumList, Ext.grid.Panel, showThreadOfSelectedFroum: function(selectedFroum)通过预设置的id获得引用var threadList = Ext.getCmp(mythreadlist);

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!