asp.net的生命周期:

页面初始化(Init):服务器创建服务器控件实例。

加载(Load):控件实例被加载到它定义的页面对象中。

预输出(PreRender):对控件的更改被更新,准备输出。

保存(SaveviewState):控件的状态信息被保存。

输出页面(Render):服务器为控件创建html标记。

处理(Dispose): 主要做的工作就是dispose, 关闭数据库连接,文件资源的释放等。

卸载(Unload):销毁服务器控件的实例

 

  页面生命周期主要事件:

     * 1、PreInit

                     完成操作:检查IsPostBack属性来确定是不是第一次处理该页;

                     创建或重新创建动态控件

                     动态设置主控页

                     动态设置Theme属性

                     读取或设置配置文件属性

                     注:如果请求是回发请求,则控件的值尚未从视图状态恢复,即:不应该在此事件中设置控件属性。

              2、Init

                    完成操作:在所有控件都已经初始化并且应用所有外观设置后引发。使用该事件来读取和初始化控件属性。 

             3、InitComplete

                     完成操作:由Page对象引发,使用该事件来处理要求完成所有初始化工作的任务。

            * 4、PreLoad

                      完成操作:为页和所有控件加载视图状态,然后处理Request(获取所请求的页的 HttpRequest 对象包含有关当前 HTTP 请求的信息。) 实例包括的任何回发数据。

                      注:如果需要在Load之前对页或控件进行处理,需要该事件。

             * 5、Load

                    Page 对象对 Page 对象调用 OnLoad 方法,然后以递归方式对每个子控件执行相同操作,直到加载完本页和所有控件为止。 各个控件的 Load 事件在页的 Load 事件之后发生。

                    完成操作:以递归方式加载所有控件。

           *6、控件事件

                    完成操作:处理控件引发的事件。

                    使用这些事件来处理特定控件事件,如 Button 控件的 Click 事件或TextBox 控件的 TextChanged 事件。

                    注:在回发请求中,如果页包含验证程序控件,请在执行任何处理之前检查Page和各个验证控件的IsValid属性。

 

             7、LoadComplete 

             8、PreRender

                  在控件输出前最后的修改机会。

                  注:在该事件发生前的操作:

                  Page对所有控件递归进行EnsureChildControl操作

                  设置了DataSourceID属性的数据绑定控件会调用DataBind方法。 

             9、SaveStateComplete

                  在该事件发生前,已经对控件的ViewState进行了保存。将忽略对页和控件所作的所有修改。

             10、Render

                  方法,便于开发

              11、UnLoad

 

 

 

Asp.net 存储信息的内置对象:

 

Session:用于保存与客户相关的信息,Session中数据保存在服务器端。当客户端需要时创建Session,在客户端不需要时销毁Session。Session的生命周期是为了解决服务器可能内存不足的情况。

      特点:Session中数据保存在web服务器端内存中。

      Session中可以保存任意类型的数据。

      session默认生命周期是20mine

      Session用来保存每一个用户的专有信息

Application:和session储存的数据类型和存储位置相同。都是object(任意)类型,并且存放在服务器上。但Application中的数据可以有网站中所有的用户来设置或者获取。并且其存放数据的时间没有时间限制,除非我们手动删除或服务器重启,这样数据会全部丢失。

Viewstate通常用于保存单个用户的状态信息,可以保存大量的数据但是过多会影响程序响应性能。所有web服务器控件都使用ViewState在页面回发期保存自己的状态信息。

 

 

cache:用于保存对象在Http请求期间保存页面或数据。该对象的使用可以极大地提高整个应用程序的效率。常用于将频繁访问的大量服务器资源存储在内存中,当用户发出相同的请求后服务器不再次处理而是将Cache中保存的信息返回给用户,节省了服务器处理请求的时间。其生存期依赖于该应用程序的生存期。当重新启动应用程序时,将重新创建其Cache对象的实例。(代替Application)

cookie 缓存:(加快访问速度。主要在客户端,其对象在服务器上)用于保存客户浏览器请求服务器页面的请求信息,也可以用它存放非敏感性的用户信息,信息保存的时间可以根据需要设置.如果没有设置Cookie失效日期,它们仅保存到关闭浏览器程序为止.如果将Cookie对象的Expires属性设置为Minvalue,则表示Cookie永远不会过期.Cookie存储的数据量很受限制,大多数浏览器支持最大容量为4K,因此不要用来保存数据集及其他大量数据.