在分析事件机制结构的基础上,结合实例浅谈了中事件用的处理以及传播过程.如何实现兼容于各大主流浏览器的特点,介绍了事件标准定义的两种事件流=关键词:;事件模型;;事件传播中图分类号:311.1文献标识码:文章编号:伽哆一3044(2011)09?2189-03?,?,?,?(,653100,):,...:;;;是一种编写的与后台无关的框架,它提供了可莺用的对象和部件.在简化开发的同时又起到丰富客户端界面的效果。
陔框架的核心思想是通过动态创建页面的标记元素,从而使得页面更灵活。其实本身并没使用到新技术,而是在基础二结合这些设计思想发展过来的。而事件机制作为架构体系中核心部分。它不仅扩展浏览器元素事件,使其兼容于各大主流浏览器,而且它采用观察者模式的来架构组件的事件机制,为组件提1摹了良好的扩展性。1事件机制仆么是事件呢。事件及事件处理其实就是当用户执行某一个状态,或者是当对象执行某一个操作时。会给哪些关心这个动作的对象发送一个通知,那些对象(监听者)接受到通知后,会执行相应的操作12]。针对数据操控行为都可以被看为一个事件.并以相同的方式来处理。
事件常用于图形化的界面中,是图形化界面消息通信的一项重要元素。
为用户提供了一批标准的组件,当然这些组件支持事件的机制的,这样可以围绕组件的事件进行编程了。框架中存在着大量的事件操作。那些事件所通知的对象不仅是可以看得见控件,而且还可以延伸到非可视的数据层面对象。1.1浏览器事件将事件分为两种:浏览器事件和自定义事件。
浏览器事件,就是传统意义上的鼠标单击、移动等事件,由浏览器根据用户的动作而触发的一类事件,与页面元素密切相关。相关的类有.、.、.、.1.。
包含了常见的方法和属性,它提供了一个快捷的、统一的、跨浏览器的接。而对于事件的处理,.将这一操作委托给了.,由.对页面浏览器事件实施管理,如增加事件处理器、移除事件处理器等操作。至于.,则是对原始的浏览器事件进行了封装,提供给事件处理器一个统一的事件接。那么.1.呢。其实.的很多功能都是调用.1.来实现的,它维护着所有的事件处理器。在当前主流的浏览器中主要存在三种事件模型:原始事件模型,2事件模型,事件模型。其中原始的事件模型被所有浏览器所支持,而)2中所定义的事件模型目前被除了以外的所有主流浏览器支持。1.1.1原始事件模型原始事件模型可以通过嵌入处理代码到标签和赋值到元素的事件属性中来进行注册事件的处理工作。它和其他两个模型最大的区别在于该模型中没有明确的对象,可以有两种方法将事件处理甬数跟特定的事件联系起来。1)在中设置感兴趣的元素的属性。<=””=”:;”=:..=!(':+);”,!<><.=”!。>,输入代码<>哪样不是对的这是一个简单的测试,如果想要注册一个事件,最原始的方式就是直接在其标签中对应的事件属性中写上可运行的收稿日期:2011-01?08作者简介:袁中旺,男,现就读于玉溪师范学院计算机科学与技术专业。本栏目责任编辑:粱书电知识与技术第7卷第9期(2011年3月)代码。
在上面的代码中,给标签的事件编写了处理语句。.是直接通过来取到当前标签的属性值,得到处理结果是弹出:值。
2)在中设置元素对象的属性:如.(””).=;采用这种方法时应注意的是不能在函数调用的末尾加上括号。
是把对函数的引用赋值给对象,而不是把函数的执行结果赋值给对象。这样可以最大程度的降低文件和文件的依赖性,缺点是不够直观。浏览器会根据函数的返回值来决定是否激活元素的默认行为?返回则激活,否则不激活。通过两种方法中的任意一种设置事件处理函数相当于给该元素定义了一个新方法,在事件被触发的时候,在处理函数体内关键字指向的是发出该事件的元素。
1.1.22事件模型2事件模型参考了的气泡模型而制定的,它是由3制定的规范。在原始模型中事件一旦发生就直接调用事件属性,不存在其它事件关于这游戏还行传播过程。
而在2模型中事件有一个特殊的传播过程,分为三个阶段:(1)鹊:事件被从一直向下传播到目标元素,在这过程中如果有哪个祖先元素对该事件感兴趣可以注册自己的处理函数。(2)事件到达目标元素,执行目标元素的事件处理函数。
(3)事件从目标元素上升一直到达,虽然所有的事件类型都会经历(1)阶段但是只有部分事件会经历(3)阶段。
在整个的事件传播过程中可以通过调用.0来停止事件的传播,调用0来阻止浏览器的默认行为。这个事件模型有些复杂,但是它集中事件处理代码方面作用很大,例如:如果希望在<>元素上注册事件,那么可以直接注册在上,而在第一或第三阶段来处理该事件.利用的来判断是否是<>元素。在2模型中中的所有元素和对象都实现了接:1,该接定义了添加和删除事件处理函数的的方法(”|","。”);去掉原始模型中的前缀的执行在它定义的范围内被执行.没有特殊的执行链””如果为则在事件传播的第一阶段会执行该处理函数.,为直接在该元素上发生或者在(3)阶段的祖先元素中被执行。(”",".”);在实现了2的浏览器中,为了提供向后兼容性,通过原始模型设置的事件处理函数也会得到一个的引用.可以在函数内部得到并使用,在中也一样。1.1.3模型模型也提供了一个对象封装了事件的详细信息,但是不把该对象传人事件处理函数,由于在任意时刻只会存在一个事件,所以把它作为全局对象的一个属性,中的事件传播模式对应于2的第二和第三阶段,首先执目标元素的处理函数,然后向上传播到达,中只能能捕捉鼠标事件,而2中可以捕捉所有的事件,中注册和删除事件处理函数的方法也不同于2。
2和两种事件模型中通用的事件处理函数¨.;事件处理函数的注册和删除是通过元素的(”911”)(””,””)与2不同的是有前缀,但是令人费解的是这两个函数是作为全局函数被调用的,就是说在处理函数的内部指代的是对象。通过00捕捉鼠标事件,所有的元素都具有这两个函数,一旦调用了某个元素的函数,所有后续的鼠标事件都会在上浮之前传到该元素,直到调用了,注意在浏览器失去焦点,弹出对话框或弹出系统菜单时都会使元素失去捕捉能力,这时会有一个事件发生。最常见的调用0情况是在的处理函数中,以捕捉后续的事件。?1.2自定义事件这类事件通一定要PK常与组件相关。并且需要用户根据组件的状态自己触发。
的自定义事件主要分为三额步骤:1.在类中定义事件名称:2.实例化对象,并在该对象中定义事件的监听函数3.触发事件。相关的类..、..(.)。..是所有组件的父类,它的一切予类都可以获得自定义新事件的能力,只要用户为组件登记了事件,设置了事件监听器,那么,类会在其属性那里保存事件。给所有的子类提供了一个统一的接来发布事件以及管理事件,这一特性对于组件来说是至关重要的。通过的自定义事件的机制。可以实现一对多的观察者模式,也可以实现一对一的绑定模式,这一点,在的开发中是很重要的地位。
的组件编程也极度依赖于事件模型。事件模型的最初底层不外乎是浏览器开发商对网页的结构、模型预留的事件监听器接的,[31使得每一个元素(0只要创建完毕之后,就存在一种“无限循环”的机制以等待用户的动作.并根据本栏目责任编辑:粱书第7卷第9期(2011年3月)电知识与技术元素所发生的动作去触发事件。
从语法的表面上,尝试尝试以一种简约的编程风格涵盖主流浏览器的事件模型,好让开发者摆脱异种浏览器代码适应的问题。2事件传播事件标准定义了两种事件流,这两种事件流有着湿著的不同并且可能对你的应用有着相当大的影响。这两种事件流分别是捕获和冒泡。
和许多技术一样,在它们成为标准之前,和微软各自不同地实现了它们。选择实现了捕获事件流.微软则实现了胃泡事件流。应该值得庆幸的是,3决定组合使用这两种方法,现在大多数新浏览器都遵循这两种事件流方式。2.1冒泡事件流当事件在菜元素被触发时.例如:用户在复选框节点上点击鼠标,事件将跟随着该节点继承自的各个父节点冒泡穿过整个的节点层次,直到它遇到依附有该事件类型处理器的节点,这时,该事件是事件。在冒泡过程中的任何时候都可以终止事件的冒泡,在遵从3标准的浏览器里可以通过调用事件对象上的0方法,在里可以通过设置事件对象的属性为。如果不停止事件的传播,事件将一直通过冒泡直至到达文档的根。
2.2捕获事件流和冒泡事件流不同,在捕获事件流中事件的处理是从层次的根开始,并非从触发事件的目标元素开始,事件被从目标元素的所有祖先元素依次往下传递。在这个过程中,事件会被从文档根到事件目标元素之间各个继承派生的元素所捕获,如果事件监听器在被注册时设置了属性为,那么它们可以被分派给这期间的任何元素以对事件做出处理;否则,事件会被接着传递给派生元素路径上=的下一元素,直至目标元索。
事件到达目标元素后,它会接着通过节点再进行冒泡。3结论框架中存在着大量的事件操作。如今,存为页面批上“式的用户操作界面后国服,围绕事件的开发任务也不期而遇,应这样操作成为重中之重。虽然现代浏览器本身提供了丰富的事件,但涉及到高级组件我们仍需一套可靠的事件机制去实现。参考文献:鞠风婚.吴志峰.技术在界面设计与实现中的应用研究阴.计算机与现代化,2008(11).[21许络夏.和在管理信息系统中的应用.大连海事大学,2009.33刘晓明.设计开发过程中框架的应用与研究.大连海事大学,2009.(上接第2188页)对32文件系统而言.格式化会重写分区的、清空两个表、清除原根目录所在簇的内容并且为根目录分配新的簇(通常为第2簇)。通过分析。计算出、及根目录偏移扇区数,因此将、2及根目录首簇(第2簇)备份至新文件,然后将当前分区格式化成32分区.簇的大小设为的值。因为分区容量未更改,簇的大小保持不变,因此格式化后虽然及2清空.根目录重新分配,但是只要将备份的、2及根目录首簇覆盖格式化后的、2及根目录首簇,并保存,则可恢复及分×内容,分区可通过资源管理器正常打开。4小结该文介绍了两种解决32分区格式化故障的方案,实践可以证明,这两种方案在解决由损坏引起的格式化故障时都十分有效。参考文献:[11马林.数据重现?文件系统原理精解与数据恢复最佳实践[北京:清华大学出版社,2009.[2戴士剑,涂彦晖.数据恢复技术[.2版.北京::业出版社,2005.本栏目责任编辑:梁书事件机制的探究作者:袁中旺,宋绍云,王晓燕,陈道鑫,-,-,-,-作者单位:玉溪师范学院信息技术工程学院,云南,玉溪,653100刊名:电脑知识与技术英文刊名:年,卷网游(期):2011,07(9)。