您的位置:首页 > 编程语言 > ASP

ASP.NET学习系列(三)事件

2010-03-07 22:54 267 查看
程序执行有两种模式,线性程序和事件驱动程序,显然asp.net是事件驱动的。事件驱动的本质就是程序对发生的事件进行相应来继续程序的运行。例如,一个网页上有一个按钮,页面会一直是等待状态直到按钮被点击,click事件被引发,然后程序继续运行。
通常,事件是有用户操作控件引发,但也非绝对,web服务器也可以来引发事件。有事件,就要有事件处理程序。一个事件被引发,就要有处理程序来执行事件的要求。
所有的asp.net事件都是在服务器端处理的,只不过有些是立即提交给服务器端,而有些则要等下一次也没请求时才提交到服务器端。正因为事件是在服务器端处理的,所以asp.net事件与传统的客户端应用程序的事件有所不同。后者的事件和事件处理都是在客户端进行。而在asp.net程序中,事件在客户端产生,却被在服务器端处理。
事件处理的基本流程是:当一个asp.net页面上的按钮被点击时,一个click事件产生,。因为在asp.net按钮中有一个runat被设置为“server”,这时,一个事件消息被传送到服务器。服务器检测是否有事件处理函数与click事件相关联。如果有,则事件处理将会在服务器端被执行。
事件消息是通过HTTP post方式被传递到服务器端的。asp.net自动地处理所有的捕获事件、将其传递到服务器端,以及事件处理机制。作为程序员,需要做的就是建立自己的事件处理函数。
但并非所有的事件都需要处理,类似Mouseover这样的事件,就不应该在服务器端来处理,因为这会极大地影响服务器端的性能。因为所有的服务器端处理都需要回发。如果类似的时间一定要处理,可以在客户端用脚本来处理。
几个特殊的事件:
1、应用程序事件,即application事件。application是指网站本身,因为在网站被开启接收请求时,Application_Start事件会产生。这是初始化应用程序所用到的资源的很好的时机。类似地,Application_End事件会产生于任何原因的网站停止。这时就应该关闭资源,并做好任何必备的清理工作。
2、会话事件,即session事件。session在用户第一次从你的应用程序请求页面时产生,在应用程序关闭session或session过期时结束。Session_Start事件在session启动时产生,这时可以初始化session特定的资源,如打开一个数据库连接等。当session结束时,会有一个Session_End事件产生。
3、回发事件和非回发事件,PostBack事件会导致表单被立即回发给服务器。而一些事件并不需要立即回发,这些就是非回发事件。可以强制具有非回发事件的控件以回发方式执行,方法是将控件的AutoPostBack属性设置为true。
而回发也分为两类,正常的回发是当所有页面上的非回发事件与页面的访问状态及表单值被收集在一起,所有的内容都被发送到服务器,随后生成一个新的HTML页面发送回浏览器。在该页面被重新生成并被发送回来之前,你的站点不会发生其他任何事。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐