事件驱动及事件处理

原创 2012年03月30日 11:26:29

基本概念

JavaScript是基于对象(object-based)的语言。这与Java不同,Java是面向对象的语言。而基于对象的基本特征,就是采用事件驱动(event-driven)。它是在形界面的环境下,使得一切输入变简单化。通常鼠标或热键的动作我们称之为事件(Event),而由鼠标或热键引发的一连串程序的动作,称之为事件驱动(Event Driver)。而对事件进行处理程序或函数,我们称之为事件处理程序(Event Handler)。

事件处理程序

JavaScript中对象事件的处理通常由函数(Function)担任。其基本格式与函数全部一样,可以将前面所介绍的所有函数作为事件处理程序。格式如下:

Function 事件处理名(参数表){

事件处理语句集;

……

}

事件驱动

JavaScript事件驱动中的事件是通过鼠标或热键的动作引发的。它主要有以下几个事件:

单击事件onClick

当用户单击鼠标按钮时,产生onClick事件。同时onClick指定的事件处理程序或代码将被调用执行。通常在下列基本对象中产生:

button(按钮对象)

checkbox(复选框)或(检查列表框) 

radio (单选钮) 

reset buttons(重要按钮) 

submit buttons(提交按钮) 

例:可通过下列按钮激活change()文件:

<Form>	<Input type="button" Value="" onClick="change()"></Form>

onClick等号后,可以使用自己编写的函数作为事件处理程序,也可以使用JavaScript中内部的函数。还可以直接使用JavaScript的代码等。例: 

<Input type="button" value=" " onclick=alert("这是一个例子");

onChange改变事件

当利用texttextarea元素输入字符值改变时发该事件,同时当在select表格项中一个选项状态改变后也会引发该事件。

例:

<Form>
	<Input type="text" name="test" value="test"
		onCharge="check(this.test)">
</Form>

选中事件onSelect

TextTextarea对象中的文字被选中后,引发该事件。

获得焦点事件onFocus

当用户单击Texttextarea以及select对象时,产生该事件。此时该对象成为前台对象。

失去焦点onBlur

text对象或textarea对象以及select对象不再拥有焦点、而退到后台时,引发该文件,他与onFocas事件是一个对应的关系。

载入文件onLoad

当文档载入时,产生该事件。onLoad一个作用就是在首次载入一个文档时检测cookie的值,并用一个变量为其赋值,使它可以被源代码使用。

卸载文件onUnload

Web页面退出时引发onUnload事件,并可更新Cookie的状态。实例

下例程序是一个自动装载和自动卸载的例子。即当装入HTML文档时调用loadform()函数,而退出该文档进入另一HTML文档时则首先调用unloadform()函数,确认后方可进入。 

<HTML>
	<HEAD>
		<script Language="JavaScript">
			<!--
			function loadform(){
				alert("这是一个自动装载例子!");
			}
			function unloadform(){
				alert("这是一个卸载例子!");
			}
			//-->
		</Script>
	</HEAD>
	<BODY OnLoad="loadform()" OnUnload="unloadform()">
		<a href="test.htm">调用</a>
	</BODY></HTML>


并发_同步_异步_事件驱动编程

一、开篇语   我的上篇文章《关于如何提供Web服务端并发效率的异步编程技术》又成为了博客园里“编辑推荐”的文章,这是对我写博客很大的鼓励,也许是被推荐的原因很多童鞋在这篇文章里发表了评论,有童...
  • legend050709
  • legend050709
  • 2015年04月29日 17:36
  • 798

事件驱动异步模式

事件驱动异步模式   前言   啥叫事件?啥叫驱动?异步又是啥玩意?这些字一个一个的我都认识,但是练起来我就不知道啥意思了,别急,往下看.   在下一篇文章中,我会...
  • shanyongxu
  • shanyongxu
  • 2015年08月26日 21:35
  • 2091

[转载]事件驱动的简明讲解(python实现)

转载至http://www.cnblogs.com/thinkroom/p/6729480.html 作者:码匠信龙举个简单的例子:有些人喜欢的某个公众号,然后去关注这个公众号,哪天这个公众号发布了篇...
  • wanghaoxi3000
  • wanghaoxi3000
  • 2017年04月27日 23:14
  • 1344

事件驱动框架(五)——框架的实现

事件驱动框架
  • DFSAE
  • DFSAE
  • 2016年11月12日 00:11
  • 1534

应用层与驱动层同步事件处理方法

应用层与驱动层同步事件处理方法               关于这个问题高手略过吧。               Ring3与Ring0同步是很有用的手段,在此做一个简要的整理,希...
  • jay900323
  • jay900323
  • 2013年11月20日 15:23
  • 1618

EDA事件驱动架构

事件代表过去发生的事件,事件既是技术架构概念,也是业务概念。以事件为驱动的编程模型称为事件驱动架构EDA。   EDA是一种以事件为媒介,实现组件或服务之间最大松耦合的方式。传统面向接口编程是以...
  • wl6965307
  • wl6965307
  • 2016年05月10日 18:28
  • 1797

为什么事件驱动服务器这么火

原文出处:http://geogeo.github.com/blog/2012/12/31/node-dot-js-vs-tornado-vs-php/ OPPC模型瓶颈 传统服务器模...
  • Ant_Yan
  • Ant_Yan
  • 2013年03月14日 10:15
  • 3338

软件架构模式-事件驱动

没有进行架构设计的应用程序通常是紧耦合的、玻璃心,难以改变。没有头绪。如果不理解应用的各个组件的内部工作方式的话很难看清它的架构特征。关于部署和维护的问题都很难回答:架构的规模如何?程序的性能如何?程...
  • Scythe666
  • Scythe666
  • 2017年03月11日 22:22
  • 1144

事件驱动编程

查了资料,有点乱,理解这个概念看来不易,先把看过的做下笔记: 要看是哪一层的,  例如这个,貌似是对于单任务的操作系统,适用于一些简单那的单片机,这个其实是在一个顺序结构的程序里写了个状态机,然后...
  • fengyunjh6
  • fengyunjh6
  • 2015年03月11日 11:14
  • 369

浅议Qt的事件处理机制 一

深入了解事件处理系统对于每个学习Qt人来说非常重要,可以说,Qt是以事件驱动的UI工具集。大家熟知Signals/Slots在多线程的实现也依赖于Qt的事件处理机制。     在Qt中,事件被封装成一...
  • abluemooon
  • abluemooon
  • 2016年01月08日 11:06
  • 678
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:事件驱动及事件处理
举报原因:
原因补充:

(最多只允许输入30个字)