event

观察者模式之spring事件机制

混江龙づ霸主 提交于 2020-03-24 07:34:16
ddsspring中的事件机制使用到设计模式中的观察者模式 ,观察者模式有两个概念,1.观察者、被观察者。2.被观察者做出相应得动作,观察者能接收到。不分析设计模式,学习下spring中的事件机制实际开发如何使用 及使用场景 。 spring中的事件机制涉及到者几个类文件 :ApplicationEvent(事件类型)、ApplicationListener(事件监听类)、ApplicationEventPublisher(事件发布类)。先看看这几个类的继承、实现关系: Application类继承jdk Utill包中的 EventObject,下面实现了很多子类: ApplicationListener :接口继承了utill 包中的EventListener接口,泛型参数E必须继承ApplicationEvent类 ApplicationEventPublisher: 事件发布接口 ,实现类很多,其中子类ApplicationContext,发布事件就用ApplicationContext类去发布 使用方法:   1.声明事件类型 public class DemoEvent extends ApplicationEvent{ private static final long serialVersionUID = 1L; public DemoEvent(Object

javascript中的事件Event(一)

你说的曾经没有我的故事 提交于 2020-03-24 07:33:50
一、Event基本信息 1、事件流:描述的是从页面中接受事件的顺序 IE的事件流是事件冒泡流,Netscape的事件流是事件捕获流。 2、事件冒泡 IE的事件流叫做事件冒泡(event bubbing),即事件开始时由具体的元素接受,然后逐级向上传播到较为不具体的节点。如果点击div。则事件流如下 div --> body --> html --> body 事件冒泡的过程如图 3、事件捕获 Netscape提出的事件流是事件捕获(event capturing),即不太具体的节点更早的接受到事件,然后逐级向下传递,具体的节点最后接受到事件。如果点击div,则事件流如下 body--> html --> body -->div 4、DOM事件流 DOM2级规定的事件流包括三个阶段:事件捕获阶段、处于目标阶段和事件捕获阶段。 事件流传递情况如下 二、事件处理(handler) 1、事件监听器或事件处理程序,即响应某个事件的函数,名字是以"on"开头的。 2、DOM0 级的Event handler 每个元素(包括window,document)都有自己的事件处理程序属性,属性通常全部小写,将属性设置成函数即可指定处理函数。 var btn = document.getElementById('myBtn'); btn.onclick = function() { alert(this

【读书笔记】事件Event

主宰稳场 提交于 2020-03-24 06:55:54
事件是一种允许类发送信号的方式,用来表明某个重要事情的发生。 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Event { class Program { static void Main(string[] args) { LongTask It = new LongTask(); It.OnNotifyProgress += new LongTask.NotifyProgressDelegate(It_OnNotifyProgress); It.PerformTask(); Console.ReadLine(); } static void It_OnNotifyProgress(ProgressArgs pa) { Console.WriteLine("Progress on Long Task Complete. {0}% Complete.", pa.PercentComplete); } } class LongTask { public delegate void NotifyProgressDelegate(ProgressArgs pa); // Declare a delegate public event

JavaScript与DOM(下)

女生的网名这么多〃 提交于 2020-03-23 10:32:23
上一章我们介绍了 JavaScript 的基本内容和 DOM 对象的各个方面,包括如何访问 node 节点。本章我们将讲解如何通过 DOM 操作元素并且讨论浏览器事件模型。 操作元素 上一章节我们提到了 DOM 节点集合或单个节点的访问步骤,每个 DOM 节点都包括一个属性集合,大多数的属性都提供为相应的功能提供了抽象。例如,如果有一个带有 ID 属性 intro 的文本元素,你可以很容易地通过 DOM API 来改变该元素的颜色: document.getElementById('intro').style.color = '#FF0000'; 为了理解这个 API 的功能,我们一步一步分开来看就非常容易理解了: var myDocument = document; var myIntro = myDocument.getElementById('intro'); var myIntroStyles = myIntro.style; // 现在,我们可以设置颜色了: myIntroStyles.color = '#FF0000'; 现在,我们有了该文本的 style 对象的引用了,所以我们可以添加其它的 CSS 样式: myIntroStyles.padding = '2px 3px 0 3px'; myIntroStyles.backgroundColor = '#FFF';

js 添加事件 attachEvent 和 addEventListener 的用法

限于喜欢 提交于 2020-03-23 02:45:09
一般我们在JS中添加事件,是这样子的 ? 1 obj.onclick=method 这种绑定事件的方式,兼容主流浏览器,但如果一个元素上添加多次同一事件呢? ? 1 2 3 obj.onclick=method1; obj.onclick=method2; obj.onclick=method3; 如果这样写,那么只有最后绑定的事件,这里是method3会被执行,这个时候我们就不能用onclick这样的写法了,主角改登场了,在IE中我们可以使用attachEvent方法 ? 1 2 3 4 //object.attachEvent(event,function); btn1Obj.attachEvent( "onclick" ,method1); btn1Obj.attachEvent( "onclick" ,method2); btn1Obj.attachEvent( "onclick" ,method3); 使用格式是前面是事件类型,注意的是需要加on,比如onclick,onsubmit,onchange,执行顺序是 method3->method2->method1 可惜这个微软的私人方法,火狐和其他浏览器都不支持,幸运的是他们都支持W3C标准的addEventListener方法 ? 1 2 3 4 //element.addEventListener(type

移动端页面顶部滑动实现菜单的弹出与隐藏

不想你离开。 提交于 2020-03-22 03:03:09
<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title></title> <style> .outer-scroll { position: relative; } .top-box { width: 100%; background: #666; display: none; padding: 10px; } .scroll-box { width: 100%; height: 1000px; top: 0; background: #ccc; position: absolute; padding: 10px; } </style> </head> <body> <div class="outer-scroll"> <div class="top-box"> <h4>This is top menu</h4> <h4>It will be show after touch down</h4> <h4>It will be hidden after

Android进阶笔记16:onInterceptTouchEvent、onTouchEvent与onTouch

笑着哭i 提交于 2020-03-22 02:36:11
1. onTouch方法 : onTouch方法是 View的 OnTouchListener借口中定义的方法,处理View及其子类被touch是的事件处理 。 当一个View绑定了OnTouchLister后,当有touch事件触发时,就会调用onTouch方法。 当然,前提是touch时间能够传递到指定的view。Q1:为什么会传递不到呢? (当把手放到View上后,onTouch方法被一遍一遍地被调用) 1 /** 2 * Interface definition for a callback to be invoked when a touch event is 3 * dispatched to this view. The callback will be invoked before the touch 4 * event is given to the view. 5 */ 6 public interface OnTouchListener { 7 /** 8 * Called when a touch event is dispatched to a view. This allows listeners to 9 * get a chance to respond before the target view. 10 * 11 * @param v The

js 阻止事件冒泡和默认行为 preventDefault、stopPropagation、return false

落花浮王杯 提交于 2020-03-21 05:22:27
preventDefault: preventDefault它是事件对象(Event)的一个方法,作用是取消一个目标元素的默认行为。既然是说默认行为,当然是元素必须有默认行为才能被取消,如果元素本身就没有默认行为,调用当然就无效了。什么元素有默认行为呢?如链接<a>,提交按钮<input type=”submit”>等。 当Event对象的cancelable为false时,表示没有默认行为,这时即使有默认行为,调用 preventDefault也是不会起作用的。 我们都知道,链接<a>的默认动作就是跳转到指定页面,下面就以它为例,阻止它的跳转: //假定有链接 <a href="http://www.cnf2e.com/" id="testA" >cnf2e</a> var a = document.getElementById("testA"); a.onclick =function(event){//阻止默认行为 event.preventDefault(); } stopPropagation: stopPropagation也是事件对象(Event)的一个方法, 作用是阻止目标元素的冒泡事件,但是会不阻止默认行为 。什么是冒泡事件?如 在一个按钮是绑定一个”click”事件,那么”click”事件会依次在它的父级元素中被触发

什么是 Event Loop?

梦想与她 提交于 2020-03-20 13:58:13
3 月,跳不动了?>>> Event Loop 是一个很重要的概念,指的是计算机系统的一种运行机制。 JavaScript语言就采用这种机制,来解决单线程运行带来的一些问题。 本文参考C. Aaron Cois的 《Understanding The Node.js Event Loop》 ,解释什么是Event Loop,以及它与JavaScript语言的单线程模型有何关系。 想要理解Event Loop,就要从程序的运行模式讲起。运行以后的程序叫做 “进程” (process),一般情况下,一个进程一次只能执行一个任务。 如果有很多任务需要执行,不外乎三种解决方法。 (1)排队。因为一个进程一次只能执行一个任务,只好等前面的任务执行完了,再执行后面的任务。 (2)新建进程。使用fork命令,为每个任务新建一个进程。 (3)新建线程。因为进程太耗费资源,所以如今的程序往往允许一个进程包含多个线程,由线程去完成任务。(进程和线程的详细解释,请看 这里 。) 以JavaScript语言为例,它是一种单线程语言,所有任务都在一个线程上完成,即采用上面的第一种方法。一旦遇到大量任务或者遇到一个耗时的任务,网页就会出现”假死”,因为JavaScript停不下来,也就无法响应用户的行为。 你也许会问,JavaScript为什么是单线程,难道不能实现为多线程吗? 这跟历史有关系

js事件对象event

蹲街弑〆低调 提交于 2020-03-20 08:32:17
js的事件对象 即我们函数中经常会用到的 Event Event 对象代表事件的状态,比如事件在其中发生的元素、键盘按键的状态、鼠标的位置、鼠标按钮的状态。 事件通常与函数结合使用,函数不会在事件发生前被执行! 事件句柄 通常我们用得比较多的 就是在标签上 写onclick="fn()" 鼠标 / 键盘属性 属性 描述 altKey 返回当事件被触发时,"ALT" 是否被按下。 button 返回当事件被触发时,哪个鼠标按钮被点击。 clientX 返回当事件被触发时,鼠标指针的水平坐标。 clientY 返回当事件被触发时,鼠标指针的垂直坐标。 ctrlKey 返回当事件被触发时,"CTRL" 键是否被按下。 metaKey 返回当事件被触发时,"meta" 键是否被按下。 relatedTarget 返回与事件的目标节点相关的节点。 screenX 返回当某个事件被触发时,鼠标指针的水平坐标。 screenY 返回当某个事件被触发时,鼠标指针的垂直坐标。 shiftKey 返回当事件被触发时,"SHIFT" 键是否被按下。 IE 属性 除了上面的鼠标/事件属性,IE 浏览器还支持下面的属性: 属性 描述 cancelBubble 如果事件句柄想阻止事件传播到包容对象,必须把该属性设为 true。 fromElement 对于 mouseover 和 mouseout 事件