《牛腩新闻发布系统》知识回顾(二)

来源:互联网 发布:微信头像制作软件 编辑:程序博客网 时间:2024/06/09 19:16

   今天的博客主要介绍Session和母版页

  Session:

    如上图所示,除了上面介绍的Page.IsPostBack以外,今天的话题就是谈论一下Session的作用。

Session简称会话(在这几次的博客中经常提到),是指一个终端用户与交互系统进行通信过程中的时间间隔,在某一个的通信过程用户的状态就被保存在Session中,当一个Session第一次被启用的时候,代表此次会话的标识会被存储在cookie中(缓存),在Session存在的生命周期内,当程序再次调用到这个会话时,程序会首先从cookie中加载会话。

    在不同的语言中Session的使用不一样,对于ASP和JAVA中如何使用以后我们详细讨论。在牛腩新闻发布系统中牛老师使用Session保存用户登录的登录名信息,这样在用户登录之后的信息我们随时都可以使用。

if (b){    Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<scriptlanguage='javascript' defer>alert('添加新闻成功!');</script>");}  else{    Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<scriptlanguage='javascript' defer>alert('新闻删除失败,请联系管理员!');</script>");}

   Page.ClientScript.RegisterStartupScript()方法

    Page.ClientScript.RegisterStartupScrip是用来注册脚本块的,如果我们想在页面加载时就启动javascript,这个类就要发挥作用了。

    Page.ClientScript.RegisterStartupScript()可以有如下两种形式,

     1、RegisterStartupScript(type,key,script)

     2、RegisterStartupScript(type,key,script,script tag specification)

     在如上的代码中我们可以看到在这个方法中的参数type为Page.GetType(),参数key为"message",参数script为一段javascript代码,最后一个参数为defer,表示延迟脚本的执行。

     这个方法的执行时会将javascript的执行顺序放到代码的底部执行,也就是</form>标签的前面,只要前面的代码执行完之后才会运行到这个方法执行的地方,相比于另外一个类似的方法RegisterClientScriptBlock(),而这个方法的执行顺序确实在<form>标签之后马上执行,这个小小的区别一定要引起我们编写代码执行顺序的重视。

母版页

    ASP.NET中的母版页类似于一个抽象的页面(网页模板),把一些相似的页面用抽象页面去代替,这样,我们可以更新一个母版页就可以更新了应用母版页的所有子页面。和一般的内容页的不同,母版页不能被用户直接访问,它也依赖于一个内容页存在。

   母版页的加载:

   1、单个内容页加载母版页:通过在内容页的page指令中加上MasterPageFile属性。


   2、多个内容页加载母版页:需要把MasterPageFile属性添加到配置文件中

    3、动态加载:通过PreInit事件,在页面初始化时可以动态加载母版页

修改与内容页关联的母版页:

   1、通过前台页面中的page指令:

   2、通过后台代码中的page.header.title=“”;修改

   3、通过Master.FindControl()查找母版页中的控件。

以上是对母版页再次回顾,印象中仍然记得这个母版页给我们带来了很多的方便。


   Global.asax文件:

    Global.asax文件又称ASP.NET应用程序文件,这个文件可以响应ASP.NET和HTTP模块所引发的程序级别和会话级别的事件,运行 Global.asax 文件的时候会将其编译到一个动态生成的 .NETFramework 类。 Global.asax 文件是可选的。只在希望处理应用程序事件或会话事件时,才应创建它。

   在Global.asax文件中有一些经常使用的事件如:

     ·Application_Start:在HttpApplication类的第一个实例被创建时,该事件被触发。它允许你创建可以由所有HttpApplication 实例访问的对象。

     ·Application_End:在HttpApplication类的最后一个实例被销毁时,该事件被触发。在一个应用程序的生命周期内它只被触发一次。

     ·Application_BeginRequest:在接收到一个应用程序请求时触发。对于一个请求来说,它是第一个被触发的事件,请求一般是用户输入的一个页面请求(URL)。

     ·Application_EndRequest:针对应用程序请求的最后一个事件。

     · Session_Start:在一个新用户访问应用程序 Web站点时,该事件被触发。

     · Session_End:在一个用户的会话超时、结束或他们离开应用程序 Web站点时,该事件被触发。

    《牛腩新闻发布系统》的知识回顾就到这里了,学习需要真正的去实践这个反复的过程,每一次知识的反复都有一种新的体会!

0 0