![[EXTJS中基于事件的编程探究] x黑天鹅事件_第1页](http://file1.renrendoc.com/fileroot_temp2/2020-10/28/05a783bf-2f93-4b7d-ac4d-4960ad9c31f3/05a783bf-2f93-4b7d-ac4d-4960ad9c31f31.gif)
![[EXTJS中基于事件的编程探究] x黑天鹅事件_第2页](http://file1.renrendoc.com/fileroot_temp2/2020-10/28/05a783bf-2f93-4b7d-ac4d-4960ad9c31f3/05a783bf-2f93-4b7d-ac4d-4960ad9c31f32.gif)
![[EXTJS中基于事件的编程探究] x黑天鹅事件_第3页](http://file1.renrendoc.com/fileroot_temp2/2020-10/28/05a783bf-2f93-4b7d-ac4d-4960ad9c31f3/05a783bf-2f93-4b7d-ac4d-4960ad9c31f33.gif)
![[EXTJS中基于事件的编程探究] x黑天鹅事件_第4页](http://file1.renrendoc.com/fileroot_temp2/2020-10/28/05a783bf-2f93-4b7d-ac4d-4960ad9c31f3/05a783bf-2f93-4b7d-ac4d-4960ad9c31f34.gif)
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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.g
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 如何设计轻质普通型铝合金轮椅项目可行性研究报告技术工艺+设备选型+
- 中国卷铝涂料项目商业计划书
- 2024年成都彭州市事业单位招聘真题
- 培训营协议书
- 船艇考试题库及答案
- 初中中药考试题型及答案
- 急诊骨科考试试题及答案
- 起诉离婚协议书离婚
- 2025年合同执行保障金
- 汽车指标租赁协议书
- 2025四川成都高新投资集团有限公司选聘中高层管理人员4人笔试历年参考题库附带答案详解(3卷合一)
- 新手汽车改装知识培训班课件
- 化验室救护知识培训课件
- 船舶维护保养指南
- 2025特种设备培训试题及答案
- GB/T 27689-2025小型游乐设施滑梯
- 第三章代数式七年级上学期数学重点题型(原卷版)(2024苏科新版)
- 第8课 《回忆鲁迅先生(节选)》 课件 2025-2026学年统编版语文八年级上册
- 酱酒食品安全培训记录课件
- 劳动价值观测试理解劳动的意义与价值
- 合伙开店合同终止协议书
评论
0/150
提交评论