ASP使用了线性处理模型。页面执行按照从开始到结束的顺序执行。因此ASP开发者在一个简单的页面中也需要写相当多的代码。比如,一个web页面有三个不同的提交按钮,各自提交到不同的页面。当点击按钮提交页面时,需要在代码中判断是哪个按钮触发的,然后根据判断执行正确的操作。
ASP.NET采用的事件驱动模型,这种模型并不新鲜,它曾是windows编程开发独有的。
ASP.NET事件执行大概步骤如下:
1.页面首次运行。ASP.NET创建页面和控件对象,执行初始化代码。然后,页面渲染成HTML并返回客户端。同时页面对象从服务器内存中释放出来。
2.用户触发了postback,比如点击按钮。这时,页面的所有form数据被提交。
3.ASP.NET拦截返回的页面并重新创建页面对象,让页面保持和上次发回客户端相同的状态。
4.接下来,ASP.NET检查哪个动作触发了postback,然后它会触发相应的事件(比如,Button.Click),你的代码会响应此事件。通常,这时你会执行一些服务器端的操作(比如,更新数据库或从文件中读取数据)然后修改控件对象显示新的信息。
5.修改过的页面被渲染成HTML然后返回给客户端。页面对象从内存中释放出来。如果另一个postback触发,ASP.NET重复步骤2到4的过程。
出自Pro ASP.NET 4 In C# 2010